我要在创建用户后显示其数据,并使用以下代码在异步函数中返回用户:
const newUser = await user.save()
return newUser
但是我不希望看到密码。
我已经遇到过this topic,其中也包含类似的问题,那里展示的最佳方法是将select: false
放在模式定义的密码字段中。它适用于查找功能,但不适用于document.save()回调。
当前,我通过使用扩展操作并重置密码字段来实现所需的目标:
const newUser = await user.save()
return { ...newUser.toObject(), password: null }
是否有更好的方法来实现这一目标?
答案 0 :(得分:0)
使用lodash,最好使用干净的代码
return _.omit(newUser, ['password']);
或者您可以在架构级别使用后保存的第二件事
schema.post('save', function(doc) {
delete doc.password;
});