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

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

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

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

有没有什么办法可以在modifyBodyFunction()修改res.body,甚至在处理程序调用res.send()之前?

你必须在中间件中使用next()而不是res() ,像anotherFunction()

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

请阅读关于中间件的内容

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