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

How to modify res.body in last restify response handler?

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

例子

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

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

有什么方法可以修改 modifyBodyFunction() 中的 res.body,即使之前的处理程序正在调用 res.send()?

您必须在 anotherFunction()

等中间件中使用 next() 而不是 res()

如果您之前发送响应(在中间件中),您之后将无法执行任何操作,这是不正确的。

请阅读有关 Middlewares

的内容

PS 当然,您可以在中间件中发送响应,但只有在由于某些错误需要中断链时才应发送该响应。