Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在发送之前过滤响应_Node.js_Mongodb_Filtering_Mongoose - Fatal编程技术网

Node.js 在发送之前过滤响应

Node.js 在发送之前过滤响应,node.js,mongodb,filtering,mongoose,Node.js,Mongodb,Filtering,Mongoose,我正在Node.js和MongoDB中用mongoose编写一个服务器 我的用户模型如下所示: var User = new Schema({ username : { 'type' : String, 'trim' : true, 'required' : true, 'validate': [usernameValidator, 'whitespace_not_allowed'] }, avatar : { 'type

我正在Node.js和MongoDB中用mongoose编写一个服务器

我的用户模型如下所示:

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 : {
  'type'      : String,
  'index'     : { unique: true },
  'required'  : true,
  'select'    : false
}