Ouw*_*ang 6 node.js sequelize.js
在sequlize的文档中,他们使用像这样的导入函数
// in your server file - e.g. app.js
var Project = sequelize.import(__dirname + "/path/to/models/project")
// The model definition is done in /path/to/models/project.js
// As you might notice, the DataTypes are the very same as explained above
module.exports = function(sequelize, DataTypes) {
return sequelize.define("Project", {
name: DataTypes.STRING,
description: DataTypes.TEXT
})
}
Run Code Online (Sandbox Code Playgroud)
但是,这会有什么问题呢?
// in your server file - e.g. app.js
var Project = require(__dirname + "/path/to/models/project")
// The model definition is done in /path/to/models/project.js
var Project = sequelize.define("Project", {
name: Sequelize.STRING,
description: Sequelize.TEXT
});
module.exports = Project
Run Code Online (Sandbox Code Playgroud)
好吧,你可以看到你的模型定义需要两件事:
在你使用sequelize.import('something');它的第一个例子中类似于use require('something')(this, Sequelize);(这是sequelize实例)
两者都是初始化模型所必需的,但重要的是要理解:其中一个是classtype,因此它是全局的,另一个是实例,必须使用您的连接参数创建.
所以,如果你这样做:
var Project = sequelize.define("Project", {
name: Sequelize.STRING,
description: Sequelize.TEXT
});
module.exports = Project
Run Code Online (Sandbox Code Playgroud)
续集来自哪里?它必须以某种方式实例化并传递.
以下是require而不是import的示例:
// /path/to/app.js
var Sequelize = require('sequelize');
var sequelize = new Sequelize(/* ... */);
var Project = require('/path/to/models/project')(sequelize, Sequelize);
// /path/to/models/project.js
module.exports = function (sequelize, DataTypes) {
sequelize.define("Project", {
name: DataTypes.STRING,
description: DataTypes.TEXT
});
};
module.exports = Project
Run Code Online (Sandbox Code Playgroud)
您甚至可以更改它,因此您不必通过在模型本身中要求它来传递Sequelize,但您仍然需要在定义模型之前创建续集实例.
| 归档时间: |
|
| 查看次数: |
6520 次 |
| 最近记录: |