我正在使用 mongoose 的 toJSON 支持,如下所示:
userSchema.set('toJSON', { getters: true, virtuals: true, minimize: false })
现在,在猫鼬对象的 toJSON() 方法调用返回的结果中,我想删除某些敏感字段。怎么做?
用不同的方式来解释这个问题:
某些特定字段,例如“密码”、“令牌”,我们仅在查询中需要,但在返回结果中不需要,如何隐藏它们以防止从所有类型的查询中返回?
更新:这最终是我最终得到的结果并且工作起来很有魅力:
userSchema.options.toJSON = {
getters: true,
virtuals: true,
minimize: false,
transform: function (doc, ret, options) {
delete ret.password
delete ret.authToken
return ret
}
}
您可以自定义 toJSON 如何在您的架构上工作,如下所示:
/**
* adjust toJSON transformation
*/
mySchema.options.toJSON = {
transform: function(doc, ret, options) {
ret.id = ret._id;
delete ret.password;
delete ret.token;
delete ret._id;
delete ret.__v;
return ret;
}
};
doc
是要序列化的文档,ret
是将转换为 JSON 的纯 JS 对象。然后你可以操纵ret
随你怎么便。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)