如何修改最后一个 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
当然,您可以在中间件中发送响应,但只有在由于某些错误需要中断链时才应发送该响应。
我想在链的末端创建处理程序,在将响应主体发送到客户端之前修改响应主体。
例子
restify.get('/api/persons', getAllPersons(), anotherFunction(), modifyBodyFunction());
问题是链中的某些处理程序在先(例如 anotherFunction()
,正在调用 res.send()
并因此将响应发送回客户端。
有什么方法可以修改 modifyBodyFunction()
中的 res.body,即使之前的处理程序正在调用 res.send()?
您必须在 anotherFunction()
next()
而不是 res()
如果您之前发送响应(在中间件中),您之后将无法执行任何操作,这是不正确的。
请阅读有关 Middlewares
的内容PS 当然,您可以在中间件中发送响应,但只有在由于某些错误需要中断链时才应发送该响应。