【问题标题】:iterative render with node and express使用 node 和 express 迭代渲染
【发布时间】:2017-04-02 17:18:47
【问题描述】:

刚接触节点和异步,但仍在为概念苦苦挣扎。

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

【问题讨论】:

    标签: node.js express asynchronous callback


    【解决方案1】:

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

    【讨论】:

    • 感谢 Serjuice 指点我在视图中解决它。而是继续采用这种方法,这对我有用。现在将一个对象数组传递给视图引擎并在那里对其进行排序。
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 2019-09-10
    • 2015-07-17
    • 1970-01-01
    • 2014-11-24
    • 2014-01-15
    • 1970-01-01
    • 2017-10-07
    相关资源
    最近更新 更多