猫鼬模型#保存返回值

Dan*_*ios 1 save mongoose node.js express

我想在执行 save() 时获取整个文档而不是添加的项目。

var newTodo = Todos({
     ID: req.body.ID,
     RuleName: req.body.RuleName
});

newTodo.save(function (err, todos) {
     if (err) throw err;
     res.send(todos);
});
Run Code Online (Sandbox Code Playgroud)

Med*_*uly 6

你不能得到它,除非你扩展模型方法,或者在 save 里面得到它

简单版

newTodo.save(function (err, todos) {
     if (err) throw err;
     Todos.find(err, todos) {
         if (err) throw err;
         res.send(todos);
     }
});
Run Code Online (Sandbox Code Playgroud)

带有自定义方法的版本

// in schema definition
TodosSchema.methods.saveAndFind = function(cb) {
  var self = this;
  self.save(function(err) {
    if(err) throw err;
    return self.model('Todos').find({}, cb);
  })
};
// in controller
var newTodo = Todos({
     ID: req.body.ID,
     RuleName: req.body.RuleName
});
newTodo.saveAndFind(function (err, todos) {
     if (err) throw err;
     res.send(todos);
});
Run Code Online (Sandbox Code Playgroud)