2014-01-23 26 views
0

我有一個簡單的JSON API,由於某種原因,它呈現的值不是console.log報告的值。response.json()呈現舊變量

我的路線:

​​

這是我api.js:

exports.dateRecords = exports.dateRecords || []; 

exports.listData = function(req, res) { 
    console.log('listData:', exports.dateRecords); 
    return res.json(exports.dateRecords); 
}; 

控制檯輸出:

listData: [] 
addData: [ '2014-01-22': { requestedInvites: 47 } ] 
addData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 } ] 
getStatsForDate http://create.gootechnologies.com/api/metrics/ksa8dVWi8sPg41?mode=1&day=20140122 
listData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 } ] 
addData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 } ] 
addData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 } ] 
getStatsForDate http://create.gootechnologies.com/api/metrics/ksa8dVWi8sPg41?mode=1&day=20140105 
listData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 } ] 
addData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 }, '2014-01-05': { requestedInvites: 49 } ] 
addData: [ '2014-01-22': { requestedInvites: 47, registrations: 5 }, '2014-01-05': { requestedInvites: 49, registrations: 20 } ] 
/dateRecords [ '2014-01-22': { requestedInvites: 47, registrations: 5 }, '2014-01-05': { requestedInvites: 49, registrations: 20 } ] 

瀏覽器輸出:

[] 

(即初始值爲exports.dateRecords

有什麼問題?

回答

2

res.json使用JSON.stringifyJSON.stringify忽略具有非數字鍵的數組的屬性。

var a = [1,2,3]; 

    JSON.stringify(a); // '[1,2,3]' 

    a.hi = 4; 

    JSON.stringify(a); // '[1,2,3]' 

只需將一個常規對象而不是一個數組傳遞給res.json

+0

謝謝!剛剛意識到這同樣適用於嵌入在JSON結構中的_any_數組。 –