Я делаю первый проект node / express / mongo / handlebars и борюсь со стороной вывода HTML.У меня это работало ненадолго, но что-то сломалось, когда я разрабатывал код.
Я не уверен, что я просто провалил свой первоначальный вывод и ищу совет о том, как наилучшим образом решить проблему или это простая ошибка,Я добавил запись в Mongo без проблем, и данные в порядке, но я не могу последовательно выводить результаты.
router.get('/:chanName', function(req, res, next) {
if (req.params.chanName != 'add') {
let myData = {};
MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {
if (err) { return console.log('Unable to connect to MongoDB'); }
//get result from db
client.db('tube').collection('channel-reviews').find({'channel': req.params.chanName}).toArray(function(err, result) {
if (err) throw err;
myData = result[0];
// myData is populated object here
});
// myData is empty object here
client.close();
res.render('review');
});
} else {
res.render('add');
}
});
URL-адрес используется в качестве параметра для получения записи монго, которую я затем пытаюсь представить в виде списка со следующим шаблоном
<ul>
<li>{{ myData.channel }}</li>
<li>{{ myData.chanURL }}</li>
<li>{{ myData.score }}</li>
<li>{{ myData.title }}</li>
<li>{{ myData.content }}</li>
</ul>
Я просто положил что-то не туда или это что-то более фундаментальное (например, окончательный код выполняется задолго до того, как данные могут быть получены и обработаны) и требует использования Promisesи т. д.