【发布时间】:2020-01-14 22:05:27
【问题描述】:
我有如下简单的续集模型。
// user.js
module.exports = function(sequelize, DataTypes) {
const user = sequelize.define(
"User",
{
name: {
field: "name",
type: DataTypes.STRING(50),
unique: true,
allowNull: false
},
uid: {
field: "uid",
type: DataTypes.STRING(50),
allowNull: false
}
},
{
freezeTableName: true,
tableName: "user"
}
);
user.associate = function(models) {
user.hasMany(models.friend, {
foreignKey: "uid"
});
};
return user;
};
还有另一个模型。
// friend.js
module.exports = function(sequelize, DataTypes) {
const friend = sequelize.define(
"Friend",
{
uid: {
field: "uid",
type: DataTypes.STRING(50),
allowNull: false
},
jsonId: {
field: "json-id",
type: DataTypes.STRING(50),
allowNull: true
},
nlpId: {
field: "nlp-id",
type: DataTypes.STRING(50),
allowNull: true
}
},
{
freezeTableName: true,
tableName: "friend"
}
);
friend.associate = function(models) {
friend.belongsTo(models.user, { foreignKey: "uid" });
};
return friend;
};
还有 index.js。当我运行 sequelize 时,它给了我一个错误,例如“错误:Friend.belongsTo 调用的东西不是 Sequelize.Model 的子类”。
你能为这个问题推荐一些建议吗?非常感谢您阅读它。
db.user = require('./user')(sequelize, Sequelize);
db.friend = require('./friend')(sequelize, Sequelize);
【问题讨论】:
-
认为发生这种情况是因为您需要它,因为您的模型没有在所有内容加载时的第一个进程滴答声中定义,但是当您使用 require 调用它时,这意味着您的模型尚未定义。尝试在不需要的情况下定义您的模型,只需在某个文件中定义它们,然后使用
import './models/users'连接这些文件
标签: node.js sequelize.js