最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Sequelize afterFind挂钩不更改console.log中的数据?

IT培训 admin 7浏览 0评论

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
   }
   ...
});

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
   }
   ...
});
发布评论

评论列表 (0)

  1. 暂无评论