Отправка результатов нескольких запросов к базе данных в одном представлении с помощью Express
У меня есть представление панели мониторинга (dashboard.jade), которое отображает две панели с различной информацией, всю эту информацию следует извлечь из базы данных и затем отправить в представление.
Позволять'скажем, у меня есть файл маршрута (document.js) с двумя определенными действиями:
exports.getAllDocuments = function(req, res){
doc = db.model('documents', docSchema);
doc.find({}, function(err, documents) {
if (!err) {
// handle success
}
else {
throw err;
}
});
};
exports.getLatestDocumentTags = function(req, res){
tags = db.model('tags', tagSchema);
tags.find({}, function(err, docs) {
if (!err) {
// handle success
}
else {
throw err;
}
});
};
Эти функции будут служить лишь частью процесса извлечения данных из базы данных.
Теперь я хотел бы отправить эти данные в представление панели мониторинга из моего файла маршрута dashboard.js в функции exports.index, где я отображаю представление панели мониторинга.
Проблема в том, что вызовы БД будут асинхронными, я бы неу меня нет доступа к данным, прежде чем я смогу вызвать представление.
Я думаю, у меня могло бы быть действие, которое бы просто делало все мои вызовы БД и через обратные вызовы доставляло все данные сразу к представлению, но это сделало бы мои действия поиска данных не пригодными для повторного использования.
Я действительно запутался в том, как правильно решить эту проблему, возможно, яЯ все неправильно понимаю. Может кто-нибудь дать мне несколько советов о том, как сделать это правильно?