Sequelize 关联 returns Sequelize 实例而不是对象

Sequlize association returns SequelizeInstance instead of object

我正在使用 Sequlizejs 2.0.0-rc4。

我有两个实体:Feeds(包含一个 owner_id 字段)和 Owners。基本上,FeedsOwners 之间存在一对多关系 - Owner 有多个 Feeds.

我尝试过多种不同的建模方式,但唯一正确的方法是:

Owner.hasMany(Feed, {foreignKey: 'owner_id'});
Feed.belongsTo(Owner, {foreignKey: 'owner_id'});

唯一的问题是当我尝试像这样获取 Feed 时:

models.feeds.findAll({
    include: [models.owners]
}).then(function (feeds) {
   // feeds will contain a SequlizeInstance object
});

然后结果将包含一个 SequlizeInstance 对象而不是 Owner 对象,然后我必须通过 feeds.owners.dataValues.

之类的东西访问它

这里有什么问题?

这里没有问题:)。 Sequelize returns sequelize 实例,因为它们允许您执行所有可爱的 sequelize 操作,例如 feed.owner.updateAttributes({.. }).

如果您想要所有者对象的普通值,您应该调用 get or toJSON