如何在猫鼬的 document.save() 回调中隐藏字段?
Posted
技术标签:
【中文标题】如何在猫鼬的 document.save() 回调中隐藏字段?【英文标题】:How to hide a field in the callback of document.save() in mongoose? 【发布时间】:2019-09-05 20:34:20 【问题描述】:我想在创建用户后显示用户的数据,使用以下代码在异步函数中返回用户:
const newUser = await user.save()
return newUser
但我不希望密码被看到。
我已经遇到过包含类似问题的this topic,而这里提出的最佳方法是将select: false
放在架构定义的密码字段中。它适用于查找函数,但不适用于 document.save() 回调。
目前我正在通过使用扩展操作和重置密码字段来实现我想要的:
const newUser = await user.save()
return ...newUser.toObject(), password: null
有没有更好的方法来实现这一点?
【问题讨论】:
【参考方案1】:使用lodash,这是一个代码简洁的更好的库
return _.omit(newUser, ['password']);
或者您可以在架构级别使用后保存的第二件事
schema.post('save', function(doc)
delete doc.password;
);
【讨论】:
以上是关于如何在猫鼬的 document.save() 回调中隐藏字段?的主要内容,如果未能解决你的问题,请参考以下文章