nodejs使用Sequelize框架操作數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
sequelize.define
使用該方法可以定義model,例子如下:
const Sequelize = require('sequelize'); var sequelize = new Sequelize(config.database, config.username, config.password, { host: config.host, dialect: 'mysql', pool: { max: 5, min: 0, idle: 30000 } }); var Website = sequelize.define('website', { id: { type: Sequelize.BIGINT, primaryKey: true, autoIncrement: true }, url: Sequelize.STRING(255), title: Sequelize.STRING(255), status: Sequelize.INTEGER, delete_mark: Sequelize.BOOLEAN }, { timestamps: false });
該方法傳入的第一個(gè)參數(shù)是數(shù)據(jù)表的單數(shù)形式,怎么理解呢?例如這里傳入的是website其實(shí)是模型名,數(shù)據(jù)表默認(rèn)是websites這樣的復(fù)數(shù)形式,這種約定我在Laravel中也碰見(jiàn)過(guò),
也就是常說(shuō)的,約定大于定義,也就是說(shuō),如果我們都按照約定的規(guī)范去開(kāi)發(fā),那么效率其實(shí)比重新定義,要高很多。
那么,定義好了模型,該怎么進(jìn)行使用呢?
(async () => { let demo = await Website.create({ url:'http://www.xxxx.com/', title:'demo' }); console.log(demo); })();
繼承Model
const {Sequelize, DataTypes, Model} = require('sequelize'); const config = require('../config'); const sequelize = new Sequelize(config.database, config.username, config.password, { host: config.host, dialect: 'mysql', pool: { max: 5, min: 0, idle: 30000 } }); /** * @author chaojilaji * 數(shù)據(jù)表websites的關(guān)系對(duì)象映射 */ class WebSite extends Model { } WebSite.init({ id: { type: Sequelize.BIGINT, primaryKey: true, autoIncrement: true }, url: Sequelize.STRING(255), title: Sequelize.STRING(255), status: Sequelize.INTEGER, delete_mark: Sequelize.BOOLEAN }, { sequelize, modelName: 'Website', timestamps:false }); (async () => { await sequelize.sync(); let x = await WebSite.create({ url: 'http://www.xxxxxxxx.com/', title: 'demo2' }); console.log(x); })(); module.exports = WebSite;
我比較推薦使用繼承Model這種方式,通過(guò)創(chuàng)建一個(gè)class,這樣可以使用model.exports=模塊名的方式,將該模型封裝起來(lái)。供別的地方使用,只需要require進(jìn)去即可。
具體如何對(duì)數(shù)據(jù)表進(jìn)行操作,就比較簡(jiǎn)單了,只需要參考API即可。 sequelize文檔地址
到此這篇關(guān)于nodejs使用Sequelize框架操作數(shù)據(jù)庫(kù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)nodejs Sequelize操作數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Koa2微信公眾號(hào)開(kāi)發(fā)之消息管理
這篇文章主要介紹了Koa2微信公眾號(hào)開(kāi)發(fā)之消息管理,這一節(jié)我們就來(lái)看看公眾號(hào)的消息管理。并實(shí)現(xiàn)一個(gè)自動(dòng)回復(fù)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05node+express+ejs制作簡(jiǎn)單頁(yè)面上手指南
本文記錄了使用node+express+ejs制作簡(jiǎn)單頁(yè)面的全過(guò)程,話說(shuō)express+ejs真的是太難了,有種蛋蛋的憂傷~2014-11-11Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析
這篇文章主要為大家介紹了Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-1013 個(gè)npm 快速開(kāi)發(fā)技巧(推薦)
這篇文章主要介紹了13 個(gè)npm 快速開(kāi)發(fā)技巧,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-07-07node.js實(shí)現(xiàn)復(fù)制文本到剪切板的功能
這篇文章主要給大家介紹了node.js實(shí)現(xiàn)復(fù)制文本到剪切板的功能,文中介紹的非常詳細(xì),并給出示例代碼,相信對(duì)大家具有一定的參考借鑒價(jià)值,有需要的朋友們下面來(lái)一起看看吧。2017-01-01nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法
今天小編就為大家分享一篇nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05