如何在sequelize node.js的现有模型中添加多对多关联?

我想使用sequelize在我的节点应用程序中添加许多到许多关联。 我是新的ORM的续集。

我有一个eixsting模型user.js。 我想创build新的模型项目,并添加到多对多的关联

为此,我运行sequelize创build表和迁移创build现在在关联部分我做多对多创build

我发现多个这样做

Project.belongsToMany(User, {through: 'UserProject'}); 

但我在哪里写User.belongsToMany(Project, {through: 'UserProject'}); 因为用户模式已经存在

第二件事,我想知道UserProject自动创build的UserProject或需要手动创build它?

使用sequelize-cli并使用sequelize init工具是一个很好的做法,它会创build一个将所有模型聚集在一起的文件,并在它们之间build立关联。 该关联是通过类方法associate ,应该在所有模型中实现(与其他模型关联)。

这个方法看起来像这样( User模型的情况下):

 classMethods: { associate: function(models){ this.belongsToMany(models.Project, { through: 'UserProject' }); } } 

Project模型中相当于:

 classMethods: { associate: function(models){ this.belongsToMany(models.User, { through: 'UserProject' }); } } 

如果您不想向UserProject表中添加任何其他额外字段,将自动使用字段UserIdProjectId创build它(如果使用sequelize.sync()方法 – 否则必须在迁移文件中创build表)。 在其他情况下,当你想添加其他字段时,你将不得不自己创build这样一个模型。