2016-11-14 2 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 
     } 
    } 
    } 
] 

私はにconsole.logを行う際にケースである、200に等しくなるように進歩を期待しますres.sendの前に、私は郵便配達でデータを受け取ったとき、進歩はまだ配列に等しいです。私は間違って何をしていますか?

答えて

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

関連する問題