7

我有一个对象:

var obj = { "stuff": "stuff" }

在 Express 中,我将它发送给客户端,如下所示:

res.json(obj);

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

{
  "status": "ok",
  "data": { "stuff": "stuff" }
}

谢谢!

4

1 回答 1

10

一旦数据被添加到流中,重新包装它已经太晚了,所以你必须先做。

要么简单地使用一个功能:

res.json(wrap(obj));

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

express.response.wrap_json = function(obj) {
  this.json(wrap(obj));
};

所以你现在可以打电话

res.wrap_json(obj);

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

var original = express.response.json;
express.response.json = function(obj) {
  original.call(this, wrap(obj));
};

如果您想覆盖所有 json 调用,我只会使用最后一个。

于 2013-02-02T01:30:34.090 回答