Javascript SyntaxError:JSON.parse(<;anonymous>;)处的JSON输入意外结束

Javascript SyntaxError:JSON.parse(<;anonymous>;)处的JSON输入意外结束,javascript,node.js,json,api,Javascript,Node.js,Json,Api,我正在使用API获取一些信息,以便在nodejs中使用https.get()显示在我的网页上。但是,当我试图通过将响应解析为JSON来控制台记录响应时,会显示此错误 SyntaxError:JSON输入意外结束 在JSON.parse()处 在收到消息时。(C:\Users\Hardik Aggarwal\Desktop\RSC\app.js:17:33) 在IncomingMessage.emit(events.js:315:20) 在addChunk(_stream_readable.js:

我正在使用API获取一些信息,以便在nodejs中使用https.get()显示在我的网页上。但是,当我试图通过将响应解析为JSON来控制台记录响应时,会显示此错误

SyntaxError:JSON输入意外结束 在JSON.parse()处 在收到消息时。(C:\Users\Hardik Aggarwal\Desktop\RSC\app.js:17:33) 在IncomingMessage.emit(events.js:315:20) 在addChunk(_stream_readable.js:295:12) 在readableAddChunk(_stream_readable.js:271:9) 在IncomingMessage.Readable.push(_stream_Readable.js:212:10)
在HTTPParser.parserOnBody(_http_common.js:132:24) 在TLSSocket.socketOnData(_http_client.js:469:22) 在TLSSocket.emit(events.js:315:20) 在addChunk(_stream_readable.js:295:12)

URL正在以JSON格式发送正确的数据。唯一的问题是JSON.parse()无法处理此数据。代码是

app.get("/", function(req, res){
    https.get(url, "JSON", function(response){
        response.on("data", function(data){
            const currency=JSON.parse(data);
            console.log(currency);
        })
    })

    res.render("index");
})
当您使用“数据”事件时,这意味着您将响应视为一个流,并且不能保证它将在一个块中发送所有数据。所以,在“数据”事件中,您应该收集所有块,在“结束”事件中,您应该尝试解析数据。另外,不要忘记检查response.statusCode是否存在错误。 试试这个:

app.get("/", function(req, res){

https.get(url, "JSON", function(response){
    var data;
    response.on("data", function(chunk) {
      if (!data) {
        data = chunk;
      } else {
        data += chunk;
      }
    });

    response.on("end", function() {
        const currency=JSON.parse(data);
        console.log(currency);
        res.render("index");
    });
});

这对我有用,谢谢!