2016-11-14 61 views
0

我在使用Express在RESTful API中發送對象時遇到了一些麻煩。這應該很簡單,但我有一個奇怪的錯誤。 這裏是我的代碼:在res.send期間JS對象發生了變化

result = result.map(function (elem) { 
    elem.progress = elem.progress.map(prog => prog.progress).reduce((x, y) => x + y, 0); 
    return ({'user': elem}); 
}); 
result.forEach((elem) => console.log('#', elem.user.progress)); 
console.log('result:', result); 
res.send(result); 

這是我用它來測試它的數據:

[ 
    { 
    "user": { 
     "user_id": 1, 
     "id": 354, 
     "already_connected": 1, 
     "progress": [ 
     { 
      "id": 520, 
      "teams_user_id": 354, 
      "a_category_id": 1, 
      "progress": 100, 
      "created": "2016-11-10T13:44:30.000Z", 
      "modified": "2016-11-10T13:44:33.000Z" 
     }, 
     { 
      "id": 521, 
      "teams_user_id": 354, 
      "a_category_id": 2, 
      "progress": 100, 
      "created": "2016-11-10T13:44:33.000Z", 
      "modified": "2016-11-10T13:44:35.000Z" 
     }, 
     ], 
     "user": { 
     "name": "Foo bar", 
     "avatar_id": 6673, 
     "default_avatar_int": 1 
     } 
    } 
    } 
] 

我希望進步等於200,這是這樣,當我做的console.log在res.send之前,但是當我在Postman中收到數據時,進度仍然等於一個數組。我究竟做錯了什麼 ?

回答

0

如果這是您最初使用的數據,那麼您可能忘記導航到.user屬性。檢查:

var result = [ 
 
    { 
 
    "user": { 
 
     "user_id": 1, 
 
     "id": 354, 
 
     "already_connected": 1, 
 
     "progress": [ 
 
     { 
 
      "id": 520, 
 
      "teams_user_id": 354, 
 
      "a_category_id": 1, 
 
      "progress": 100, 
 
      "created": "2016-11-10T13:44:30.000Z", 
 
      "modified": "2016-11-10T13:44:33.000Z" 
 
     }, 
 
     { 
 
      "id": 521, 
 
      "teams_user_id": 354, 
 
      "a_category_id": 2, 
 
      "progress": 100, 
 
      "created": "2016-11-10T13:44:33.000Z", 
 
      "modified": "2016-11-10T13:44:35.000Z" 
 
     }, 
 
     ], 
 
     "user": { 
 
     "name": "Foo bar", 
 
     "avatar_id": 6673, 
 
     "default_avatar_int": 1 
 
     } 
 
    } 
 
    } 
 
] 
 

 
result = result.map(function (elem) { 
 
    // you forgot to navigate to `.user` property 
 
    elem.progress = elem.user.progress.map(prog => prog.progress).reduce((x, y) => x + y, 0); 
 
    return ({'user': elem}); 
 
}); 
 
result.forEach((elem) => console.log('#', elem.user.progress)); 
 
console.log('result:', result);

+0

沒有遺憾,這是後的數據({ '用戶':ELEM}); – Papotitu

+0

在嘗試處理數據之前,能否提供一個數據示例? –

+0

通過添加elem = elem.toJSON()來解決該錯誤;在第一個result.map的開始處 – Papotitu

相關問題