Mongoose зависает при поиске ()
Я разрабатываю бэкэнд для сайта. Основное приложение использует KeystoneJS для предоставления пользовательского интерфейса администратора тем, кто создает контент, а Keystone работает поверх MongoDB (в частности, mongoose). Контент подается на основной веб-сайт и в мобильное приложение, поэтому для предоставления им серверного API-интерфейса я пишу отдельное приложение Express.
Внутренний сервер пытается получить доступ к базе данных Mongo с помощью mongoose. Я звоню mongoose.connect()
используя следующую строку подключения и параметры:
var db_connection = 'mongodb://db_user:db_pass@localhost:27017/db';
var db_options = {
autoReconnect: false,
bufferMaxEntries: 0,
poolSize: 10,
};
Соединение успешно открыто, как зарегистрировано mongoose.connection.on('connected', ...);
и я могу вручную просмотреть базу данных с помощью оболочки MongoDB, чтобы убедиться, что в базе есть документы.
Тем не менее, когда я пытаюсь запросить базу данных, используя:
var events = Event.find();
events.exec((err, events) => {
console.log('/api/events: events found, sending to client');
if (err) res.send(err);
res.json(events);
}).catch(err => console.log('error: ' + err));
где Event
является keystone.list('Event').model
, запрос зависает и exec
обратный вызов никогда не вызывается, так как консольный журнал никогда не печатается на терминал.
Я правильно инициализировал Keystone и импортировал модели, поэтому не думаю, что проблема связана с моделью Keystone, а с самой mongoose. Кроме того, если я выполню приведенный выше код внутри приложения Keystone, он будет успешно запущен, но не в моем бэкэнд-приложении Express.