Я пытаюсь получить некоторые данные из mongoDB и сохранить их в массиве, а затем передать этот массив в файл ejs. Кажется, проблема в том, что пока mongo запрашивает результаты, код после кода db выполняется и пустой массив отправляется в ejs. Результаты приходят после выполнения функции рендеринга, и, следовательно, данные не отправляются в ejs ..
app.get('/', (req, res) => {
var batData = [];
//console.log("get req");
MongoClient.connect(url, (err,db)=>{
if(err) throw err;
console.log("Enter DB");
var dbo = db.db("MatchDB");
batData = dbo.collection("Batting").find().toArray((err,res)=>{
console.log("Query Success");
});
console.log("Exit DB");
db.close();
})
// batData remains empty when these lines of code executes.
res.render('index', {
batting: batData
});
});
Вывод в следующем порядке:
Введите БД
Выход из БД
Запрос успеха
Ожидаемый заказ:
Введите БД
Успех запроса
Выход из БД