【问题标题】:Returning values after save in Mongoose在 Mongoose 中保存后返回值
【发布时间】: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 响应。

标签: node.js express mongoose


【解决方案1】:

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

我听从了他的建议,并在 addUser() 中调用了 findAll(),现在一切正常 -> 我可以在保存新用户后返回所有用户。谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多