在 Sequelize 中使用范围和 create 方法

sga*_*a62 6 sequelize.js

Sequelize范围允许用户在模型上定义可重用的查询。您可以定义 adefaultScope以及 name scopesfind我让这些为、update和工作findAll,但不为create.

来自文档:

.scope通过调用模型定义并传递一个或多个范围的名称来应用范围。.scope返回具有所有常规方法的功能齐全的模型实例:.findAll.update.count.destroy

是否可以将范围应用于该create方法,以便返回的实例仅限于某些属性?

小智 2

我也来这里寻找这个问题的答案,但在找到更合适的答案之前,我想分享我的解决方案(到目前为止尚未在生产中使用)。

好吧,我使用了afterCreate钩子而不是像scope这样:

afterCreate: (user, opts) => {
  // Prevent from return password after create user
  delete user.dataValues.password;
}
Run Code Online (Sandbox Code Playgroud)

我想立即指出,这不是一个经过验证的解决方案,但它可能作为一个有用的起点:)

PS.:续集6.12.4