如何在Sequelize中设置关联

我有两个模型,定义在这里:

用户型号:

var Sequelize = require("sequelize"); module.exports = function (sequelize) { var User = sequelize.define('user', { name:{ type:Sequelize.STRING(50), defaultValue:''}, email:Sequelize.STRING(50), password:Sequelize.STRING(256) }, { associate: function (models) { User.hasMany( models.Article, { foreignKey: 'postUserId' } ); User.hasMany( models.Article, { foreignKey: 'editUserId' } ); User.hasMany( models.Article, { foreignKey: 'deleteUserId' } ); } }); return User; }; 

文章模式:

 module.exports = function (sequelize, DataTypes) { var Article = sequelize.define('Article', { title: {type: DataTypes.STRING, defaultValue: '' }, content: { type: DataTypes.STRING, defaultValue: '' } }, { associate: function (models) { Article.belongsTo( models.User, { foreignKey: 'postUserId' } ); Article.belongsTo( models.User, { foreignKey: 'editUserId' } ); Article.belongsTo( models.User, { foreignKey: 'deleteUserId' } ); } }); return Article; }; 

在我的表中,每个logging都有三个用户模型的userid引用。 我想要获取每个logging中的所有三个用户数据。 我怎样才能定义关联和如何编写查找function。

 db.Article.findById('9100', {include: [User]}).then(function (art) { if (!art) { return res.status(404).send({ message: 'No article with that identifier has been found' }); } res.json(art); }).catch(function (err) { return res.status(400).send({ message: errorHandler.getErrorMessage(err) }); }); 

上面的方法只能返回一个User Data,如何返回所有的User Data?

谢谢。

如果多次关联相同的模型,则必须在关联中使用“as”属性。

 associate: function (models) { User.hasMany( as:'PostArticles', models.Article, { foreignKey: 'postUserId' } ); User.hasMany( models.Article, as:'EditArticles', { foreignKey: 'editUserId' } ); User.hasMany( models.Article, as:'DeleteArticles', { foreignKey: 'deleteUserId' } ); } 

更多: http : //docs.sequelizejs.com/en/latest/docs/associations/