Когда я запрашиваю сразу после создания и открытия соединения mongoose, как показано ниже, обратный вызов запроса удаляется, а документы загружаются.Запрос вызова не вызывается, когда соединение Mongoose создано в другой функции
var db,
mongoose = require('mongoose');
...
MyClass.prototype.query = function(model, criteria, callback) {
var options = {
server: {
auto_reconnect: true,
socketOptions : {
keepAlive: 1
}
}
};
mongoose.connect('mongodb://localhost/mydatabase', options);
db = mongoose.connection;
db.on('error', console.error.bind(console, 'Error:'));
db.once('open', function() {
model.find(criteria).exec(function(err, docs) {
callback(err, {}, docs);
});
});
};
Однако, когда я создаю соединение в initDB
функции и сделать запрос позже, как показано ниже, обратный вызов не вызываются. initDB
вызывается до запуска сервера express
.
var db,
mongoose = require('mongoose');
...
function initDB() {
var options = {
server: {
auto_reconnect: true,
socketOptions : {
keepAlive: 1
}
}
};
mongoose.connect('mongodb://localhost/mydatabase', options);
db = mongoose.connection;
db.on('error', console.error.bind(console, 'Error:'));
}
...
MyClass.prototype.query = function(model, criteria, callback) {
db.once('open', function() {
model.find(criteria).exec(function(err, docs) {
callback(err, {}, docs);
});
});
};
Что мне здесь не хватает? Любая помощь будет принята с благодарностью!