我使用sequelize-cli为模型Student自动生成代码:
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
};
我的问题是
stu
的模型?由于sequelize
是在函数签名中定义的。当sequelize model:generate
时,在config.json中定制read config,其中指定了dbname,passowrd。
sequelize
如何知道数据库连接配置,比如名称,密码等,因为我没有在此js文件中指定。答案 0 :(得分:0)
我使其工作的方式是使用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 object
,因此您只需要传递sequelize
和Sequelize.DataTypes
的实例,然后它将返回您的模型,例如:
const Sequelize = require('sequelize');
const sequelize = new Sequelize(...);
const Stu = require('./models/stu')(sequelize, Sequelize.DataTypes);
最后,您可以使用Stu.findAll()
获取数据库行。
希望这可以为您提供帮助。
答案 1 :(得分:0)
问题1的答案: “ sequelize.import” 会完成这项工作。
尝试以下代码:
const Sequelize = require('sequelize')
const sequelize = new Sequelize(...)
const stu = sequelize.import('./models/stu')
stu.findAll.then(...)
答案 2 :(得分:0)
通过CLI生成模型时,它将创建一个方便的Sequelize
文件,该文件为您处理var { stu } = require("./models");
stu.findAll().then(...);
实例的传递。您可以像这样通过ES6分解简单地要求挑选樱桃,现有模型:
var models = require("./models");
models.stu.findAll().then(...);
或者,您可以一次全部要求它们,然后根据需要访问特定模型:
public DataTable GetAll()
{
SqlCommand Command = new SqlCommand("Domain_GetAll", m_Connection);
Command.CommandType = CommandType.StoredProcedure;
SqlDataAdapter DAdpt = new SqlDataAdapter(Command);
DataSet ds = new DataSet();
DAdpt.Fill(ds,"Domain");**error at this location**
return ds.Tables["Domain"];
}
答案 3 :(得分:-3)