2014-01-09 32 views
1

我想用中间件函数来表示修改响应。修改响应的Express.js中间件

app.use(function(request, response, next) { 
    .. do something .. 
    next(); // moves to next middleware 
}); 

我可以修改将被传递到下面的中间件功能的requestresponse对象。是否有修改这些对象的惯例或最佳做法?

在我的特殊情况下,我设置了res.body,因为通过使用res.write()它实际上已经发送了响应有效载荷。是否有一些属性可以存储有效负载,并且稍后将由下一个中间件功能发送?

+0

这就是我目前正在做的,我想知道是否有更好的方法来做到这一点,因为中间件功能的全部目的是链接它们。 – Fr4ncis

回答

1

您可以在修改主体的其他中间件上建模中间件,如Connect的compress。你会发现你需要钩入响应流,因为Express和Connect处理流而不是静态对象。