如何在最后的restify响应处理程序中修改res.body?

时间:2015-07-05 09:25:00

标签: node.js restify

我想在链的末尾创建处理程序,该处理程序在将响应主体发送到客户端之前进行修改。

示例

restify.get('/api/persons', getAllPersons(), anotherFunction(), modifyBodyFunction());

问题是链中的某些处理程序(例如anotherFunction())正在调用res.send(),因此将响应发送回客户端。

有没有办法可以修改modifyBodyFunction()中的res.body,即使处理程序先调用res.send()?

1 个答案:

答案 0 :(得分:1)

您必须在next()

等中间件中使用res()代替anotherFunction()

如果您之前(在中间件中)发送了响应,则在此之后您无法执行任何操作并且它不正确。

请阅读有关Middlewares

的内容

PS 当然,您可以在中间件中发送响应,但只有在您因某些错误而需要打破链时才应发送响应。