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

标签 node.js restify

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

示例

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/

相关文章:

node.js - 为什么restify没有自己的插件来支持cookie?

javascript - 在 TypeScript 中使用 Promises 的异步函数的正确错误模式

javascript - Node.js 中出现的这个错误是什么?

node.js - 使用 gm/imagemagick 进行 NodeJS 图像处理

node.js - 管理 Restify 中的错误

node.js - 使用restify时如何支持cors

javascript - 服务器端点仅在第一次调用时运行 promise 函数,之后立即返回

javascript - 在 Express 中从一条路线重定向到另一条路线

node.js - 依次执行 Node 应用程序中收到的 webhook