我想使用 sequelize 在我的 Node 应用程序中添加多对多关联。我是 Sequelize ORM 的新手。
我有一个 eixsting 模型 user.js。我想创建新的模型项目并添加到多对多关联中
为此,我运行 sequelize create table 和 migration created 现在在关联部分,我所做的是创建了多对多关联
我找到了很多这样的东西
Project.belongsToMany(User, {through: 'UserProject'});
但是我在哪里写 User.belongsToMany(Project, {through: 'UserProject'});
因为用户模型已经存在
第二件事我想知道 UserProject
是由此自动创建还是需要手动创建?
最佳答案
最好使用 sequelize-cli
并使用 sequelize init
工具,该工具创建一个文件,将所有模型收集在一起并在它们之间创建关联。关联是通过类方法 associate
完成的,它应该在您的所有模型中实现(与其他模型关联)。
此方法可能如下所示(在 User
模型的情况下):
classMethods: {
associate: function(models){
this.belongsToMany(models.Project, { through: 'UserProject' });
}
}
和 Project
模型中的等价物:
classMethods: {
associate: function(models){
this.belongsToMany(models.User, { through: 'UserProject' });
}
}
如果您不想向 UserProject
表添加任何其他额外的字段,它将自动创建包含字段 UserId
和 ProjectId
(如果您使用 sequelize.sync()
方法 - 否则您必须在迁移文件中创建表)。在其他情况下,当您想要添加其他字段时,您将不得不自己创建这样的模型。
关于javascript - 如何在 sequelize node.js 中的现有模型中添加多对多关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42198677/