循环遍历express.js中的json数据

nih*_*lus 1 javascript json node.js express

我试图循环一个json文件,并挑选出每一集,但我很困惑,我的循环只输出第一个current_episode,非常感谢,如果有人可以检查我的问题!

app.get('/episodes', function(req, res){
    fs.readFile('channels.json', 'utf8', function (err, data) {
        var jsondata = JSON.parse(data);
        for (var i=0; i<jsondata.channels.length; i++){
            var myChannel = jsondata.channels[i].current_episode;
            res.send(myChannel);
        }
    })
}); 
Run Code Online (Sandbox Code Playgroud)

我的json数据:

{
  "total": 70,
  "request_uri": "\/channels\/",
  "channels": [
    {
      "channel_id": 42,
      "current_episode": [
        {
          "id": 126248,
          "title": "Spanarna",
        }
      ]
    },
    {
      "channel_id": 43,
      "current_episode": [
        {
          "id": 126255,
          "title": "Beck: I stormens \u00f6ga",
        }
      ]
    },
............
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*yHK 7

res.send写入数据并结束请求.试试这个:

app.get('/episodes', function(req, res){
    fs.readFile('channels.json', 'utf8', function (err, data) {
        var jsondata = JSON.parse(data);
        res.writeHead(200, {'Content-Type': 'text/plain'});
        for (var i=0; i<jsondata.channels.length; i++){
            var myChannel = jsondata.channels[i].current_episode;
            res.write(JSON.stringify(myChannel));
        }
        res.end();
    })
}); 
Run Code Online (Sandbox Code Playgroud)