在Mongoose中保存后返回值

时间:2014-03-04 11:58:00

标签: node.js express mongoose

在使用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”一样。怎么能这样做?

1 个答案:

答案 0 :(得分:3)

是的,就像bernhardw所说,除了使用save()添加的文档之外,似乎没有办法返回任何内容。

我按照他的建议在addUser()中调用了findAll(),现在一切都很完美 - >保存新的用户后,我可以返回所有用户。感谢。