node.js - 如何使用 Sequelize belongsTo
问题描述
我有如下简单的续集模型。
// 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);
解决方案
写入用户模型
User.associate = models => {
User.hasMany(models.Friend, {
as: 'friends',
foreignKey: 'userId'
});
};
写给朋友模型
Friend.associate = models => {
Friend.belongsTo(models.User, {
as: 'friend',
foreignKey: 'userId'
});
};
推荐阅读
- console - 我可以为两个独立的 Python 代码提供两个独立的 Spyder 控制台吗?
- visual-studio - Can Visual Studio use an .editorconfig not in the directory hierarchy?
- javascript - 如何使用 es6 的动态导入从静态导入模块?
- c - Unix(Mac OS)终端不将 Ctrl+D 视为 EOF
- time-complexity - 以下代码循环的时间复杂度?
- c# - Linq 在运行时根据列表中的属性名称选择属性
- angular - 使用 Nativescript cli 创建组件时出错
- containers - Openshift + Tomcat9 + JSF -> jsf.application.resource.unable_to_create_compression_directory
- android - 如何通过在 AnimatedBuilder 中点击来关闭带有 Dismissible 小部件的项目?
- mysql - mysqldump 在失败时给出退出代码 0,例如因为数据库不存在