Middleware 如何创建修改response.body的Restify中间件?

Middleware 如何创建修改response.body的Restify中间件?,middleware,restify,Middleware,Restify,我需要构建一个restify中间件,它在处理程序生成的响应体上运行。似乎我传递给服务器的任何内容都会在处理程序之前被调用 我尝试调用next(),然后检查res对象,但没有成功 此外,这可能是我所寻求的,但我实际上不需要使用路由器,也不知道如何使用它。您可以使用格式化程序 我认为使用中间件是行不通的。Restify一旦找到合适的路由处理程序(.get.put.post等),就会忽略中间件。您可以使用格式化程序 创建restify服务器时,可以指定格式化程序。这些是在路由处理程序调用res.sen

我需要构建一个restify中间件,它在处理程序生成的响应体上运行。似乎我传递给服务器的任何内容都会在处理程序之前被调用

我尝试调用
next()
,然后检查
res
对象,但没有成功


此外,这可能是我所寻求的,但我实际上不需要使用路由器,也不知道如何使用它。

您可以使用格式化程序

我认为使用中间件是行不通的。Restify一旦找到合适的路由处理程序(.get.put.post等),就会忽略中间件。您可以使用格式化程序

创建restify服务器时,可以指定格式化程序。这些是在路由处理程序调用res.send()后调用的。这将允许您在将实体发送回之前对其进行操作

var server = restify.createServer({
  formatters: {
    'application/foo': function formatFoo(req, res, body, cb) {
         // body is what was sent with the response, you can edit it here.
         // You finish processing by calling cb(null, body).  
         // Just be sure that you body is properly stringified.
         // See the restify docs above for more information.
    }
  }
});

有没有办法从自定义格式化程序中调用默认格式化程序?我不这么认为。文档中提供的示例格式化程序是默认格式化程序,因此您可以将自定义逻辑附加到该格式化程序中。