无法使用Mongoose获取但使用Mongo shell

时间:2012-10-18 09:36:20

标签: find mongoose fetch

我正在玩Mongoose和Node。

希望能够保存Backbone模型,并通过Mongoose从Mongo中获取已保存的模型。

我可以保存模型但我无法通过Mongoose获取它们。我可以通过Mongo shell访问它们,没有问题:

db.users.find()

我的代码是:

var mongoose = require('mongoose'),
userschema = mongoose.Schema({name: 'string', email: 'string'}),
db = mongoose.createConnection('localhost', 'test'),
User = db.model('User', userschema);

exports.save = function(req, res){
var userobj = req.body,
    newuser = new User(userobj);

newuser.save(function(err){
    if(err){
        res.send(err);
    }
    else{
        res.send(newuser);
    }
});
};

exports.fetch = function(req, res){
var users = User.find();
res.send(users);
}

当我发送请求并执行我的获取功能时,服务器以

响应
{
  "options": {
    "populate": {}
  },
  "_conditions": {},
  "_updateArg": {},
  "op": "find"
}

就像我没有使用合适的收藏品一样。

1 个答案:

答案 0 :(得分:0)

User.find()不会返回查询结果;这些传递给您作为find的参数提供的回调。

exports.fetch = function(req, res) {
    User.find(function(err, users) {
        res.send(users);
    });
};

如果您没有提供回调,则会返回Query对象(这是您在回复中看到的内容)。