1

我试图有一个通用的 REST 来返回给定模式的所有记录。

  /* Read all entries for a given document type, TODO: limit this to a sensible amount of records, say 500 */  
  app.get( '/data/all/:id' , verifySession , function( req, res )
  {
    exposed[req.params.id].find( {} , function(err,docs)
    { 
      if( docs && req.params.id == "Account" )
        docs.forEach( function(o){ console.log(o); delete o.salt; delete o.hash; console.log(o); } );
        res.json( err || docs ); 
    });     
  });

对于 Accounts,我不想返回hashand salt,但 o 的行为就好像它是只读的。第二个 console.log(o) 仍然有saltand hash

帮助?

4

1 回答 1

3

Mongoose 返回 Document 实例,它们不是普通对象。

因此,您需要先使用以下方法转换它们toObject

var documents = docs.map( function(doc) {
  doc = doc.toObject();
  delete o.salt;
  delete o.hash;
  return doc;
});

或者,您可以告诉在结果中find排​​除hashsalt字段:

exposed[req.params.id].find({}, '-hash -salt', function(err, docs) { ... });
于 2013-10-15T15:33:37.213 回答