gpt4 book ai didi

sequelize.js - Sequelize : don't return password

转载 作者:行者123 更新时间:2023-12-03 01:19:42 25 4
gpt4 key购买 nike

我正在使用 Sequelize 对用户记录进行数据库查找,并且我希望模型的默认行为返回 password该记录的字段。 password字段是一个哈希值,但我仍然不想返回它。

我有几个可行的选择,但似乎没有一个特别好:

  1. 创建自定义类方法 findWithoutPassword对于User模型并在该方法中执行 User.findattributes设置如Sequelize docs所示

  2. 做一个正常的User.find并在 Controller 中过滤结果(不推荐)

  3. 使用其他库去除不需要的属性

还有更好的办法吗?最重要的是,如果有一种方法可以在 Sequelize 模型定义中指定永远不返回 password领域,但我还没有找到一种方法来做到这一点。

最佳答案

另一种方法是向用户模型添加默认范围。

将其添加到模型的选项对象中

defaultScope: {
attributes: { exclude: ['password'] },
}

或者您可以创建一个单独的范围以仅在某些查询中使用它。

将其添加到模型的选项对象中

scopes: {
withoutPassword: {
attributes: { exclude: ['password'] },
}
}

然后您可以在查询中使用它

User.scope('withoutPassword').findAll();

关于sequelize.js - Sequelize : don't return password,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27972271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com