2017-08-09 13 views
0

HTTP Node.jsモジュールによってRESTfulなサーバーにリクエストを実行しようとしています。Javascript - Ajaxが余分なコンマをJSONレスポンスに追加する

応答が(100キロバイトの周りの64のチャンク、)非常に巨大であるため、HTTPモジュールは、このように単一の文字列応答にチャンクをマージします。

res.setEncoding('utf8'); 

    res.on('data', (chunk) => { 
    index ++; 
    body.push(chunk); 
    }); 

    res.on('end',() => { 
    console.log("===> CHUNKS COUNTER: ".red+index); 
    } 

しかし、この「デフォルト」のアプローチにもかかわらず、身体を内容は次のように、いくつかの置き忘れのカンマがあります

}},{"ty,pe" 

はBEのinsted:

}},{"type" 

私を助けることができる人は誰ですか?アドバイスをありがとう!

答えて

0

チャンクを身体に押し込まないでください。チャンクは文字列であり、連結するだけです。

body += chunk 

その後JSONにあなたの完全な文字列を解析:

JSON.parse(body) 
+0

うわー、私はそのような間違いは、このエラーを生成することができるとは思いませんでした! 私はあなたの助けを借りて解決しました!どうもありがとう! 彼の答えはBtwのYuryにも感謝します。 – AppleInside

0

bodyは配列です。コンマで区切られた文字列に変換する場合は、body = body.join('')を使用します。

res.on('end',() => { 
    body = body.join('') 
    console.log("===> CHUNKS COUNTER: ".red+index); 
} 
関連する問題