【发布时间】:2017-08-09 20:25:01
【问题描述】:
我有一个带有猫鼬的 node.js 应用程序。我的问题是,当返回具有填充用户的实体时,用户数据包括安全数据,如盐、令牌和密码。我使用以下方法来防止私有数据返回客户端:
User.methods.toJSON = function() { // Do not change to lambda expression
const SERVER_ONLY_PROPERTIES = ['tokens', 'salt', 'password'];
var user = this.toObject();
SERVER_ONLY_PROPERTIES.forEach(propKey => {delete user[propKey]});
return user;
}
一切都很好,直到我在我的代码中使用了 lean() 函数。 使用精益时,不会调用 toJson 方法,并且私有数据会返回给客户端。我有什么选择?
【问题讨论】:
-
那么不要使用
lean()。并在查找时使用select 仅选择您想要的字段。 -
其他开发人员可能会使用精益方法。我不认为他们会在一年内记住这一点。它有风险