Node.JS上的JSON.Parse不会每次都有效

时间:2016-09-16 22:58:03

标签: javascript json node.js parsing syntax-error

这是我的代码:

var req = https.request(options, (res) => {

  res.on('data', (d) => {
    var data = JSON.parse(d);

    >> REDIS ACTION <<
    }
  });
});
req.end();

我认为JSON可能是,并且大部分时间都很大,但我不明白这个错误:

    >> JSON DATA TRUNCATED, AND THIS DON'T HAVE TO BE DISPLAYED <<

SyntaxError: Unexpected end of input
    at Object.parse (native)
    at IncomingMessage.<anonymous> (A:\p
    at emitOne (events.js:77:13)
    at IncomingMessage.emit (events.js:1
    at readableAddChunk (_stream_readabl
    at IncomingMessage.Readable.push (_s
    at HTTPParser.parserOnBody (_http_co
    at TLSSocket.socketOnData (_http_cli
    at emitOne (events.js:77:13)
    at TLSSocket.emit (events.js:169:7)

你能解释一下我的错在哪里以及如何处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

正如cdbajorin所说,我需要编写我的数据,因为当节点尝试执行命令时会发生这种情况,但是还没有收到所有请求。

以下是解决我问题的代码:

var req = https.request(options, (res) => {
  var response = '';

  res.on('data', (d) => {
    response += d;
  })

  res.on('end', () => {
    var data = JSON.parse(response);

    //EVERYTHING ELSE
      });
    }
  });
});
req.end();