【问题标题】:Mongoose Model#save return value猫鼬模型#保存返回值
【发布时间】:2016-10-29 16:42:26
【问题描述】:
我想在执行 save() 时获取整个文档而不是添加的项目。
var newTodo = Todos({
ID: req.body.ID,
RuleName: req.body.RuleName
});
newTodo.save(function (err, todos) {
if (err) throw err;
res.send(todos);
});
【问题讨论】:
标签:
node.js
express
mongoose
save
【解决方案1】:
你不能得到它,除非你扩展模型方法,或者在 save 里面得到它
简单版
newTodo.save(function (err, todos) {
if (err) throw err;
Todos.find(err, todos) {
if (err) throw err;
res.send(todos);
}
});
自定义方法的版本
// 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);
});