我正在制作一个使用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');
}
});
<ul>
<li>{{ myData.channel }}</li>
<li>{{ myData.chanURL }}</li>
<li>{{ myData.score }}</li>
<li>{{ myData.title }}</li>
<li>{{ myData.content }}</li>
</ul>
我是不是把某些东西放错了地方,或者是更根本的问题(例如最终代码在数据可以被检索和处理之前很长时间就执行了),需要使用Promises等解决方案?
ejs
,对吗? - Ravi Shankar Bharti