执行Mongoose查询后,从不调用回调函数

Bra*_*nka 8 javascript mongoose mongodb node.js

以下是我的代码:

mongoose.connect('mongodb://localhost/mydatabase');
  var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
  console.log('DB connection opened');
});
// ...
var dbCallback = function(err, body) {
  // ...
};
// ...
var StuffModel = mongoose.model('Stuff', StuffSchema);
StuffModel.find({}).exec(dbCallback);
Run Code Online (Sandbox Code Playgroud)

dbCallback永远不会调用该函数.任何帮助将不胜感激!

ale*_*son 11

在数据库连接打开,您是否尝试过执行查询?我没有Mongoose服务器来测试它,但这是我的第一个猜测.

var Stuff = mongoose.model('Stuff', StuffSchema);

db.once('open', function () {
  Stuff.find({}, function (e, body) {
    console.log('It worked!');
  });
});
Run Code Online (Sandbox Code Playgroud)

对不起,如果这不是最终修复它.


S. *_*ker 6

确保您实际连接到Mongo实例,否则查询将被挂起,并且通常不会抛出或返回错误.我的Mongo URI中的错误导致了这一点.

在您的代码中,您将Mongo URI设置为mongodb://localhost/mydatabase.我想这可能不正确,是导致问题的原因.将您的URI更改为just localhost:27017,这是Mongo设置为运行的默认端口.