2017-05-05 3 views
0
var Jsonresult = {}; 
app.get('/trips', function(req1, res1) { 
for (var i = 0; i < events.length; i++) { 
    var event = events[i]; 
    var start = event.start.dateTime || event.start.date; 
    console.log('%s - %s', start, event.summary); 
    Jsonresult.event = event.summary; 
    Jsonresult.datetime = start; 
    res1.json([Jsonresult]); 
    } 
    res1.end(); 
} 

Googleカレンダーからイベントを取得しています。コンソールではすべてのイベントを表示しますが、POSTMANでは1つのデータのみを表示します。 私はすべての結果をjson形式として取得したいが、私はforloopから1つの結果しか得ていない。私を助けてください。Express JSすべてのイベントをJSON形式で表示する

私のような結果を期待しています:

[{ 
"event": "Daily Meeting", 
"datetime": "2017-04-25T10:00:00+05:30" 
}, 
{ 
"event": "Daily Call", 
"datetime": "2017-06-26T10:00:00+05:30" 
}, 
{ 
"event": "Office Meeting", 
"datetime": "2017-05-27T10:00:00+05:30" 
}] 

しかし、そのはPOSTMANに一つだけの結果を示すが好き:

[{ 
"event": "Daily Meeting", 
"datetime": "2017-04-25T10:00:00+05:30" 
}] 

答えて

1

あなたのコードは、各反復でのJSONコンテンツをオーバーライドしています。最後に処理されたものだけが返されます。応答のイベントの配列を返すには、配列に累積する必要があります。

var Jsonresult = []; 
 
app.get('/trips', function(req1, res1) { 
 
for (var i = 0; i < events.length; i++) { 
 
    var event = events[i]; 
 
    var start = event.start.dateTime || event.start.date; 
 
    console.log('%s - %s', start, event.summary); 
 
    var eventJson = { 
 
     event : event.summary, 
 
     datetime : start}; 
 
    Jsonresult.push(eventJson); 
 
    } 
 
    res1.json(Jsonresult); 
 
    res1.end(); 
 
}

このコードはあなたのために働くことでしょう。 APIの定義http://expressjs.com/en/api.html#res.json JSON方法として

のみJSON.stringifyメソッドを使用してJSON文字列としてパラメータを変換し、応答私のために働い

+0

そのため、正しいコンテンツタイプを設定するには...ありがとうございました... –

関連する問題