0

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形式が間違っているのかもしれません。ありがとうございました。

4

1 に答える 1

0

おそらく、正しいContent-Typeヘッダーをクライアントに送信する必要があります。また、各 response の最後にresponse.end()を呼び出す必要があります。

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);
于 2012-08-09T23:28:08.733 に答える