Node.js 使用sequelize cli后如何从sequelize.model获取模型
我使用sequelize cli为model Student自动生成代码:Node.js 使用sequelize cli后如何从sequelize.model获取模型,node.js,sequelize.js,sequelize-cli,Node.js,Sequelize.js,Sequelize Cli,我使用sequelize cli为model Student自动生成代码: module.exports = (sequelize, DataTypes) => { var _stu = sequelize.define('stu', { name: DataTypes.STRING, password: DataTypes.STRING, gender: DataTypes.INTEGER, }, { classMethods: { a
module.exports = (sequelize, DataTypes) => {
var _stu = sequelize.define('stu', {
name: DataTypes.STRING,
password: DataTypes.STRING,
gender: DataTypes.INTEGER,
}, {
classMethods: {
associate: function(models) {
// associations can be defined here
}
}
});
return _stu
};
我的问题是
续集
sequelize model:generate
时,sequelize读取config.json中的配置,其中指定了dbname、passowrd
sequelize
如何知道数据库连接配置,比如名称、密码等,我在这个js文件中没有指定我使用的方法是使用
require()
函数导入模型,然后使用所需参数调用它
解释
通过require函数,您将获得另一个返回模型的函数
module.exports = (sequelize, DataTypes) => {
const stu = sequelize.define('stu', {
// ...database fields
}, {});
stu.associate = function(models) {
// associations can be defined here
};
return sty;
} // note that module.exports is a function
现在,此函数需要初始化的sequelize
对象和DataTypes对象
,因此您只需传递sequelize
和sequelize.DataTypes
的实例,然后它将返回您的模型,例如:
const Sequelize = require('sequelize');
const sequelize = new Sequelize(...);
const Stu = require('./models/stu')(sequelize, Sequelize.DataTypes);
最后,您可以使用Stu.findAll()
获取数据库行
希望这能对您有所帮助。回答问题1:
“sequelize.import”将完成此工作
请尝试以下代码:
const Sequelize = require('sequelize')
const sequelize = new Sequelize(...)
const stu = sequelize.import('./models/stu')
stu.findAll.then(...)
当您通过CLI生成模型时,它会创建一个方便的
models/index.js
文件,用于为您传递Sequelize
实例。您只需通过ES6分解如下所示的方式来获取精心挑选的现有模型:
var { stu } = require("./models");
stu.findAll().then(...);
或者,您可以同时要求所有这些模型,然后根据需要访问特定的模型:
var models = require("./models");
models.stu.findAll().then(...);
那么,您以后如何处理关联(关联)?