Sequelize.js 如何使用feather sequelize在feather JS的联接表中设置具有additionnal属性的BelongToMany关系

Sequelize.js 如何使用feather sequelize在feather JS的联接表中设置具有additionnal属性的BelongToMany关系,sequelize.js,feathersjs,feathers-sequelize,Sequelize.js,Feathersjs,Feathers Sequelize,我想用feather sequelize在两个模型之间添加多对多关系,并在联接表中添加additionnal属性。sequelize的文档对此很清楚:我必须创建一个新模型,我喜欢这样使用它 const User = sequelize.define('user', {}) const Project = sequelize.define('project', {}) const UserProjects = sequelize.define('userProjects', { statu

我想用feather sequelize在两个模型之间添加多对多关系,并在联接表中添加additionnal属性。sequelize的文档对此很清楚:我必须创建一个新模型,我喜欢这样使用它

const User = sequelize.define('user', {})
const Project = sequelize.define('project', {})
const UserProjects = sequelize.define('userProjects', {
    status: DataTypes.STRING
})

User.belongsToMany(Project, { through: UserProjects })
Project.belongsToMany(User, { through: UserProjects })

但是当我在feather应用程序中定义一个新模型时,它不是在数据库中创建的,因此我的关系不起作用,只是为了检查我是否理解正确:您希望有一个链接表,例如user_projects,并将UserProjects模型映射到它,从而在用户和项目模型之间创建多对多关系

您可以使用hasMany和belongsTo函数,而不是belongstomy,如:

您需要将链接表中的user\u id和project\u id列定义为外键

然后,您可以在链接表状态中添加任何其他属性,或者添加任何其他属性,这并不重要

User.hasMany(UserProjects, {
  as: 'UserProjects',
  foreignKey: 'user_id' // this is what you're missing
});
Project.hasMany(UserProjects, {
  as: 'UserProjects',
  foreignKey: 'project_id' // this is what you're missing
});

UserProjects.belongsTo(User, {
  as: 'Users',
  foreignKey: 'user_id'
});
UserProjects.belongsTo(Projects, {
  as: 'Projects',
  foreignKey: 'project_id'
});