nodejs使用Sequelize框架操作數(shù)據(jù)庫的實現(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
});
該方法傳入的第一個參數(shù)是數(shù)據(jù)表的單數(shù)形式,怎么理解呢?例如這里傳入的是website其實是模型名,數(shù)據(jù)表默認(rèn)是websites這樣的復(fù)數(shù)形式,這種約定我在Laravel中也碰見過,
也就是常說的,約定大于定義,也就是說,如果我們都按照約定的規(guī)范去開發(fā),那么效率其實比重新定義,要高很多。
那么,定義好了模型,該怎么進(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)系對象映射
*/
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這種方式,通過創(chuàng)建一個class,這樣可以使用model.exports=模塊名的方式,將該模型封裝起來。供別的地方使用,只需要require進(jìn)去即可。
具體如何對數(shù)據(jù)表進(jìn)行操作,就比較簡單了,只需要參考API即可。 sequelize文檔地址
到此這篇關(guān)于nodejs使用Sequelize框架操作數(shù)據(jù)庫的實現(xiàn)的文章就介紹到這了,更多相關(guān)nodejs Sequelize操作數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Node.js+jade+mongodb+mongoose實現(xiàn)爬蟲分離入庫與生成靜態(tài)文件的方法
下面小編就為大家?guī)硪黄狽ode.js+jade+mongodb+mongoose實現(xiàn)爬蟲分離入庫與生成靜態(tài)文件的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
nodeJS中關(guān)于path.resolve()的用法解析
這篇文章主要介紹了nodeJS中關(guān)于path.resolve()的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
淺析Node.js的Stream模塊中的Readable對象
這篇文章主要介紹了淺析Node.js的Stream模塊中的Readable對象,是Node.js入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-07-07
node使用async_hooks模塊進(jìn)行請求追蹤
這篇文章主要介紹了node使用async_hooks模塊進(jìn)行請求追蹤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作實例分析
這篇文章主要介紹了Vue+Node服務(wù)器查詢Mongo數(shù)據(jù)庫及頁面數(shù)據(jù)傳遞操作,結(jié)合實例形式分析了node.js查詢MongoDB數(shù)據(jù)庫及vue前臺頁面渲染等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12

