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