【发布时间】:2014-04-05 22:48:34
【问题描述】:
在使用 mongoose 将新条目保存到我的数据库后,我需要一些关于返回值的帮助。
这是我的控制器的外观:
var userModel = require('../models/users');
module.exports = {
findAll: function(req, res) {
userModel.user.findAll(function(err, users) {
return res.json(users);
});
},
findId: function(req, res) {
var id;
id = req.params.id;
userModel.user.findId(id, function(err, user) {
return res.json(user);
});
},
addUser: function(req, res) {
newUser = new userModel.user;
newUser.username = req.body.username;
newUser.password = req.body.password;
newUser.addUser(function(err, user) {
return res.json(user);
});
}
};
这是我的 users.js:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserSchema = new Schema({
username: {
type: String,
required: true
},
password: {
type: String,
required: true
}
});
module.exports = {
findAll: UserSchema.statics.findAll = function(cb) {
return this.find(cb);
},
findId: UserSchema.statics.findId = function(id, cb) {
return this.find({
_id: id
}, cb);
},
addUser: UserSchema.methods.addUser = function(cb) {
return this.save(cb);
}
};
这一切正常,但它只返回我新添加的用户 addUser。我想获取所有条目,包括新添加的条目,作为返回值。就像使用“findAll”一样。怎么可能做到这一点?
【问题讨论】:
-
根据他们的 API 文档,
save()只返回保存的文档。您需要在控制器的addUser()方法中执行findAll(),而不是直接发送 JSON 响应。