使用Express.jsdynamic更改JSON间距

我知道你可以configurationExpress输出漂亮的JSON( app.set("json spaces", 2) )或缩小的JSON( app.set("json spaces", 0) ),但有没有办法来覆盖这个全局设置特定的响应?

例如,如果我将json spaces设置为0 ,则可以执行类似下面的操作:

 app.get("/foo", function(req,res) { res.json({"a":"b"}, 2); }); 

谢谢!

一个简单的方法是使用res.send并自己设置JSON格式:

 app.get("/foo", function(req,res) { res.send(JSON.stringify({"a":"b"}, null, 2)); }); 

MDN有更多关于JSON.stringify的文档

感谢伟大的回答wjohnsto ! 根据你的答案,并在response.js代码中挖掘,我不得不做一个修改,以使其正常工作:

 app.get("/foo", function(req, res) { res .set("Content-type", "application/json; charset=utf-8") .send(JSON.stringify({"a":"b"}, null, 2)); }); 

我最终创build了一个函数sendPretty(res, data)来重用。