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);

または、エクスプレスjson実装を自分のものに置き換えることができます

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

すべてのjson呼び出しをオーバーライドする場合にのみ、最後のものを使用します。

于 2013-02-02T01:30:34.090 に答える