我正在使用 Mongoose 在 Node.js 和 MongoDB 中编写服务器。
我有一个如下所示的用户模型:
var User = new Schema({
username : {
'type' : String,
'trim' : true,
'required' : true,
'validate': [usernameValidator, 'whitespace_not_allowed']
},
avatar : {
'type' : String,
'lowercase' : true,
'required' : true
},
facebook_id : {
'type' : Number,
'required' : true,
'index' : { unique: true }
},
email : {
'type' : String,
'lowercase' : true,
'required' : true
},
token : {
'type' : String,
'index' : { unique: true },
'required' : true
}
});
当客户请求他所有的 facebook 好友时,我不想向他发送用户 token ,几乎每个请求都是如此。但是对于一些请求,比如登录,我想发送 token 。
问题是在查询数据库和发送 token 时忘记过滤结果,其他信息可能是非常致命的。
我现在正在考虑的解决方案是覆盖一个方法(还不知道是哪个),我在其中指定默认情况下应选择哪些字段。然后在我需要更多的少数情况下,我必须在查询中指定它。这样可以保证不会因为内存条错误而导致数据发送错误。
你是如何解决这个问题的?
最佳答案
默认情况下,您可以通过 select
在结果中排除 token
字段架构中字段定义的属性:
token : {
'type' : String,
'index' : { unique: true },
'required' : true,
'select' : false
}
关于node.js - 在发送之前过滤响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924340/