如何配置Express响应对象以自动向JSON添加属性?

use*_*947 7 javascript connect node.js express

我有一个对象:

var obj = { "stuff": "stuff" }
Run Code Online (Sandbox Code Playgroud)

在Express中,我像这样发送客户端:

res.json(obj);
Run Code Online (Sandbox Code Playgroud)

有没有办法配置响应对象以自动将属性添加到它生成的json?例如,要输出:

{
  "status": "ok",
  "data": { "stuff": "stuff" }
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Pas*_*cle 10

一旦数据被添加到流中,这就太晚了,不能重新包装,所以你必须先做.

要么只是一个功能:

res.json(wrap(obj));
Run Code Online (Sandbox Code Playgroud)

您还可以添加自己的json方法

express.response.wrap_json = function(obj) {
  this.json(wrap(obj));
};
Run Code Online (Sandbox Code Playgroud)

所以你现在可以打电话了

res.wrap_json(obj);
Run Code Online (Sandbox Code Playgroud)

或者你可以用你的替换快速json实现

var original = express.response.json;
express.response.json = function(obj) {
  original.call(this, wrap(obj));
};
Run Code Online (Sandbox Code Playgroud)

如果你想覆盖所有的json调用,我只会使用最后一个.