Node.js で `Unexpected end of json input` のエラーがでた

Node.js でJSON データを受信してパースしようとしたら Unexpected end of json input のエラーが表示されました。

最初以下のように書いていたのですが、

response.on('data', (data) => {
    let json = JSON.parse(data);
    ...
});

データが大きい場合は分割されて送信されてくるようなので、以下のように処理すれば上手くいきました。

let chunks = [];

response.on('data', (data) => {
  chunks.push(data);
});

response.on('end', () => {
  let data   = Buffer.concat(chunks);
  let json = JSON.parse(data);
  ...
});

参考 URL

Hugo で構築されています。
テーマ StackJimmy によって設計されています。