序列化从用户关联中排除密码

时间:2019-04-09 15:25:31

标签: javascript sequelize.js

我有一个用户表,该用户表已通过用户ID与资产表关联。我从用户表到资产表创建了hasMany关联,从资产表到用户表创建了belongsTo关联。当我在资产表上执行findAll时,我会根据建立的关联获得正确的用户信息。问题在于用户记录具有密码哈希和我确实想要的其他属性。我只想要这个关联附带的名称。

我尝试使用关联内的attribute标记,但这没用。

Model.associate = (models) => {
    Model.belongsTo(models.User, { 
        as: 'user'
    });
}

Model.associate = (models) => {
    Model.hasMany(models.Asset);
}

如果我可以排除列,则只能期望从用户表中看到用户的名字和姓氏。

1 个答案:

答案 0 :(得分:0)

您可以指定这样的属性 attributes: ['firstname', 'lastname']

因此查询将类似于

const assets = await asset.findAll({
attributes: ['attributes that you want to be included for assets table'],
include: [{
   model: User,
   attributes: ['firstname', 'lastname'],
 }]
})