迭代渲染与节点和表达

时间:2017-04-02 08:58:03

标签: node.js express asynchronous callback

节点和异步的新手,仍在努力解决概念。

尝试使用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来进行迭代,但所有示例都显示了一个简单的列表,而在我的情况下,有一个多个数组参数要传递给渲染。

1 个答案:

答案 0 :(得分:0)

我仍然不确定你用这个想要完成什么,但是可以肯定的是,我认为通过传递整个视图在你的视图中完成所有循环会更好数组(已过滤),res.render到您的视图。另请注意,每个请求只能响应一次。