Sequelize:如何映射数据透视表中的自定义属性

我有这个数据透视表,它代表了与模型Person和Movie的多对多关系。

数据透视表模式

事情是,当我打电话给那些关联人的电影时,我想得到这个angular色。 我尝试过,但没有显示angular色:

models.Movie.findAll({ include: [{ model: models.Person, as: 'persons', through: {attributes: ["role"]} }] }).then(function(movies) { res.json(movies); }); 

我是否必须在role的模型中指定某些内容?

       

网上收集的解决方案 "Sequelize:如何映射数据透视表中的自定义属性"

我终于成功地通过创buildrole属性为string的数据透视表movie_person的模型来实现这一点。

 var MoviePerson = sequelize.define("MoviePerson", { role: DataTypes.STRING }, { tableName: 'movie_person', underscored: true }); 

然后在我的Movie模型中添加了这个

 Movie.belongsToMany(models.Person, { through: models.MoviePerson, foreignKey: 'movie_id', as: 'persons' }); 

我必须在我的Person模型中做类似于这个的东西,就是这样!