如何使用ExpressJS在同一个响应对象上多次渲染?

时间:2011-12-22 17:17:19

标签: node.js express

我有一种情况,我需要在ExpressJS应用程序中使用相同的响应对象进行多次渲染。 (基本上一个HTTP请求会触发多个后端请求,所有这些请求都可以在完成后立即开始将结果呈现给页面。)问题是我需要每个请求渲染一个视图(即我不认为我可以使用res.write()),据我所知,res.render()无法在每次调用时都不结束响应或写入标题。

我错过了什么?

1 个答案:

答案 0 :(得分:8)

Express使用EJS,Jade等引擎编译模板。

然后使用response.send呈现数据:https://github.com/visionmedia/express/blob/master/lib/response.js#L76-131

正如你在那里看到的那样,最后有this.end...,这意味着response.end(...)。

如果你想实现发送多个视图,你必须自己使用视图引擎编译这些视图,然后创建一个类似于response.send的函数(我给你上面的链接),但要注意不要发送标题两次或在渲染最后一个视图之前调用response.end。