The following is my code:
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);
The dbCallback
function is never called. Any help would be greatly appreciated!
The following is my code:
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);
The dbCallback
function is never called. Any help would be greatly appreciated!
3 Answers
Reset to default 12Have you tried doing your query after the database connection opens? I don't have a Mongoose server to test it, but that would be my first guess.
var Stuff = mongoose.model('Stuff', StuffSchema);
db.once('open', function () {
Stuff.find({}, function (e, body) {
console.log('It worked!');
});
});
Sorry, if this doesn't end up fixing it.
Make sure that you are actually connected to your Mongo instance, otherwise queries will be left hanging and often no error is thrown or returned. An error in my Mongo URI was causing this for me.
In your code, you have your Mongo URI set to mongodb://localhost/mydatabase
. I imagine that this is probably not correct and is the cause of your problem. Change your URI to just localhost:27017
, which is the default port that Mongo is set to run on.
I faced similar issue.
I was calling process.exit(0)
after queries, so the app exited before mongoose have a chance to run callback.
So i removed process.exit(0)
and it worked!