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

Chr*_*art 7 node.js express

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

我错过了什么?

ale*_*lex 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在渲染最后一个视图之前.

  • 我接受了这个答案,因为它是技术上最合适的解决方案.在我的情况下,我重新设计了我进行多次调用以聚合响应的方式,并且只渲染一次,因为它似乎是一种更好的方法.alessioalex的指导是有意义的,但是对于任何想要接近它的人来说 - 指向代码的指针正是你需要开始的地方. (3认同)