2017-05-05 35 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中僅顯示一個數據。 我想以json格式獲得所有結果,但我只能從forloop獲得一個結果。請幫幫我。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" 
}] 

但它顯示像郵差結果只有一個:

[{ 
"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

它的工作對我來說..非常感謝您...... –