NodeJS, асинхронное свойство module.export

Создание веб-приложения с бэкендом nodeJS. Я хочу открыть соединение с базой данных в одном месте, а затем экспортировать его с помощью module.exports. Вот код:

let db;

MongoClient.connect('mongodb://localhost:27017/WIGAMEX', {
    poolSize: 50
}, (err, database) => {
    if (err) {
        console.log('error opening global mongo connection');
    }
    db = database;
});

module.exports = db;

Однако проблема, с которой я сталкиваюсь, заключается в том, что переменная db загружается асинхронно и не определяется во время экспорта переменной. Поэтому, если мы сейчас импортируем переменную в другой файл, мы получим undefined.

Как мы можем решить эту проблему?


person Willem van der Veen    schedule 07.05.2018    source источник
comment
Либо подключитесь синхронно, либо экспортируйте обещание для базы данных.   -  person Bergi    schedule 08.05.2018
comment
Подключиться синхронно, как?   -  person Willem van der Veen    schedule 08.05.2018
comment
Вы не можете напрямую экспортировать значение, полученное асинхронно. Экспорт происходит до того, как значение станет доступным. Вам нужно будет реализовать асинхронный интерфейс для получения объекта db. Посмотрите, как ваш вопрос был помечен как дубликат, а также этот: ">Импорт/экспорт после асинхронного результата.   -  person jfriend00    schedule 08.05.2018