假设我想返回JSON内容
var content = {
a: 'foo',
b: 'bar'
};
返回JSON数据的最佳做法是什么?
A)按原样返回对象;即res.end(content)
?
B)JSON.stringify(content)
然后在客户端上调用JSON.parse(content)
?
答案 0 :(得分:6)
如果您使用快递res.json
发送回复,则可以将对象直接发送为application/json
编码回复。
app.get('/route/to/ressource', function(req, res){
var oMyOBject = {any:'data'};
res.json(oMyOBject);
});
答案 1 :(得分:3)
客户端必须始终发送字符串。这就是协议所说的。毕竟,HTTP是一种广泛的协议,并非所有语言都支持JSON对象,更不用说JavaScript数据了。
如果你没有将它转换为JSON字符串,那么纯粹的Node很可能只是将它发送为[object Object]
,我确信这不是你的意图。
如前所述,Express允许您发送实际的JS对象,并为您执行JSON字符串转换。或者,您可以手动转换它。