1. 模型創(chuàng)建
在sequelize中調(diào)用define函數(shù)對模型進行創(chuàng)建屹徘,對于每個屬性捍靠,可以根據(jù)自己的需要設(shè)置不同的參數(shù)沐旨。例如:title: Sequelize.STRING
,對title只設(shè)置一個參數(shù)榨婆;title: { type: Sequelize.STRING, allowNull: false}
磁携,對title設(shè)置多個參數(shù)。具如下所示:
//Project 中包含兩個屬性title和description
const Project = sequelize.define('project', {
title: Sequelize.STRING,
title: { type: Sequelize.STRING, allowNull: false},
//states包含三個選項良风,用enum顯示
states: {
type: Sequelize.ENUM,
values: ['active', 'pending', 'deleted']
}
description: Sequelize.TEXT
})
2. 數(shù)據(jù)類型
const Foo = sequelize.define('foo', {
// 對flag設(shè)置默認參數(shù)為:true
flag: { type: Sequelize.BOOLEAN, allowNull: false, defaultValue: true},
//對時間設(shè)置默認參數(shù)為Now
myDate: { type: Sequelize.DATE, defaultValue: Sequelize.NOW },
//當屬性設(shè)置為allowNull:false谊迄,如果為NULL則會報錯
title: { type: Sequelize.STRING, allowNull: false},
// 設(shè)置主鍵
identifier: { type: Sequelize.STRING, primaryKey: true},
// 設(shè)置自增屬性
incrementMe: { type: Sequelize.INTEGER, autoIncrement: true },
//設(shè)置外鍵
bar_id: {
type: Sequelize.INTEGER,
references: {
// 引用的另外一個模型
model: Bar,
// 引用另外一個模型的屬性
key: 'id',
}
}
})
3. import模型
在import模型時,在主服務(wù)中調(diào)用const Project = sequelize.import(__dirname + "/path/to/models/project")
烟央,表示將目錄在/path/to/models
中的project.js
文件引入统诺。
const Project = sequelize.import(__dirname + "/path/to/models/project")
在project.js中,需要對模型進行如下操作疑俭。
注意:當import
時粮呢,需要將sequelize.INTEGER
等屬性聲明,修改成DataTypes.INTEGER
。
module.exports = (sequelize, DataTypes) => {
return sequelize.define("project", {
name: DataTypes.STRING,
description: DataTypes.TEXT
})
}
也可以將該import作為一個方法啄寡,直接接受回調(diào)作為參數(shù)豪硅,具體操作如下所示。
sequelize.import('project', (sequelize, DataTypes) => {
return sequelize.define("project", {
name: DataTypes.STRING,
description: DataTypes.TEXT
})
})