我想在链的末尾创建处理程序,在将响应正文发送到客户端之前修改它。
示例
restify.get('/api/persons', getAllPersons(), anotherFunction(), modifyBodyFunction());
问题在于链中的某些处理程序(例如 anotherFunction()
)正在调用 res.send()
,从而将响应发送回客户端。
有什么方法可以在 modifyBodyFunction()
中修改 res.body,即使处理程序之前正在调用 res.send()?
最佳答案
您必须在 anotherFunction()
等中间件中使用 next()
而不是 res()
如果您之前(在中间件中)发送响应,则此后您将无法执行任何操作,并且这是不正确的。
请阅读有关 Middlewares 的内容
PS 当然,您可以在中间件中发送响应,但只有当您由于某些错误需要中断链条时才应发送该响应。
关于node.js - 如何修改最后一个 Restify 响应处理程序中的 res.body ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228906/