节点和异步的新手,仍在努力解决概念。
尝试使用express / handlebars渲染回调来迭代地构建一个包含数组内容的html主体。最终目标是发送一个回复,其中包含使用view.hbs单独呈现的每个电子邮件。
到目前为止,但意识到它永远不会起作用。 res.render不能在回调中传回我的html变量,res.send会在渲染完成之前运行???
function buildRes (req, res, email) {
var html = '';
Object.keys(email).forEach(function (i) {
res.render('emailPanel', {subject: email[i].subject, body: email[i].body},
function(err, renOut) {
if err throw err;
html=html+renOut;
}
)
})
res.send(html);
}
关于我应该如何解决这个问题的任何建议?
开始尝试使用把手#each helper来进行迭代,但所有示例都显示了一个简单的列表,而在我的情况下,有一个多个数组参数要传递给渲染。
答案 0 :(得分:0)
我仍然不确定你用这个想要完成什么,但是可以肯定的是,我认为通过传递整个视图在你的视图中完成所有循环会更好数组(已过滤),res.render到您的视图。另请注意,每个请求只能响应一次。