Express 中间件来包装响应

Mat*_*att 5 node.js express

我正在实现一个 API,其中的结果需要由结果键返回,因此

{
  result: [
    {
      id: 1,
      name: "Bob"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想做的是添加一个中间件(如果可能的话),它可以对每个响应进行这种包装,而不必每次都考虑它。实现这一目标的最佳方法是什么?我可以看到修改response.body然后调用next()而不是做res.send(obj)(我现在正在做的事情)。

谢谢!

Mat*_*att 4

我最终扩展了响应对象以添加一个新函数(如res.sendWrapped(data)在 Express 和 Node.js 中,是否可以扩展或重写响应对象的方法? 像这样:

express.response.sendWrapped = function(obj) {
    return this.send({ result: obj });
};
Run Code Online (Sandbox Code Playgroud)