我正在尝试将JSON格式发送到浏览器来显示。 但似乎它不会影响浏览器加上有一个像req.write部分的错误。 访问URL为127.0.0.1:3000/media=video 我可以访问服务器,但它不会将JSON返回给浏览器。
var http = require('http');
var recommandCat=['top5','newest','like','random','recommened'];
var url =require('url');
http.createServer(function (req, res) {
var url_parts = url.parse(req.url, true);
var query = url_parts.query;
var returnJson="";
console.log(query.media);
switch (query.media)
{
case 'photo':
returnJson=photoGenerator();
break;
case 'video':
returnJson=videoGenerator();
break;
case 'audio':
returnJson=audioGenerator();
}
console.log(returnJson);
res.write(returnJson);
}).listen(3000, '127.0.0.1');
function videoGenerator()
{
var jsonArray = new Array();
for(i=0;i<10;i++)
{
var data = new Object();
var recoCat = recommandCat[Math.floor(Math.random()*4)];
data = {
tomEngine:{
mediaType:"video",
recommendset:[
{recommendCat:"+recoCat+",
recommendResult:[
{
mediaId:"",
mediaEntry:[{
user1:{
name:"sooin",
rating:"3",
views:"2",
like:"ture",
comment:"good"
},
user2:{
name:"sara",
rating:"1",
views:"4",
like:"ture",
comment:"good!"
}
}],
view:"4",
rating:"4",
like:"10",
attribute:{
smallUrl:"www",
largeUrl:"llll",
title:"aaaa"
},
}]
}
]
}
};
jsonArray.push(data);
}
return jsonArray;
}
也许我的json格式错了。 谢谢。
答案 0 :(得分:0)
您可能需要向客户端发送正确的 Content-Type 标头。 还response.end() should be called in the end of each response。
var body = JSON.stringify(returnJson);
res.writeHead(200, {
'Content-Length': body.length,
'Content-Type': 'application/json'
});
res.write(body);
res.end();
此外,如果你的回复主体没有分块,你只能使用方法response.end(),如
res.end(body);