Sequelize afterFind挂钩不更改console.log中的数据?
我正在尝试在模型上运行afterFind挂钩,但是运行查询后,使用JSON.stringify在console.log中的结果似乎没有改变。但是,如果我专门记录该属性,则数据将更改。
// on User model
User.hook('afterFind', function(result) {
result.teamCount = 1
return result.save()
}
})
然后尝试登录时:
const result = await User.find()
console.log(result.teamCount) // -> 1
console.log(JSON.stringify(result)) // no "teamCount" attribute present
不确定钩子在做什么,或者甚至不需要save()
,但似乎有些异常,如何在console.log中显示更改?
您应该将teamCount字段声明为虚拟的:
sequelize.define('user', {
...
teamCount: {
type: DataTypes.VIRTUAL
}
...
});