Функция обратного вызова никогда не вызывается после выполнения запроса Mongoose

5

Ниже приведен мой код:

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);

Функция dbCallback никогда не вызывается. Любая помощь будет принята с благодарностью!

Теги:
mongoose

2 ответа

10
Лучший ответ

Вы пытались выполнить свой запрос после открытия соединения с базой данных? У меня нет сервера Mongoose, чтобы проверить его, но это было бы моим первым предположением.

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

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

Извините, если это не исправление.

  • 0
    Запрос выполняется после открытия соединения с базой данных, но я проверю, не изменится ли запрос из обратного вызова db.
5

Убедитесь, что вы действительно подключены к вашему экземпляру Mongo, иначе запросы будут оставлены зависающими, и часто ошибка не будет выбрана или возвращена. Ошибка моего монгольского URI вызывала это для меня.

В вашем коде у вас установлен Mongo URI на mongodb://localhost/mydatabase. Я полагаю, что это, вероятно, неверно и является причиной вашей проблемы. Измените свой URI на localhost:27017, который является портом по умолчанию, на котором установлен Mongo.

  • 0
    Это действительно очень полезно. Если есть проблема с вашим монго URI, вы не получите ответа или ошибки от mongoose.connect ()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню