JSON.parse(<anonymous>)错误的JSON输入意外结束

时间:2020-06-19 15:43:14

标签: javascript node.js json api parsing

我的代码是这个,我试图包含COVID 19 API 来自https://api.covid19api.com/,但是当我尝试解析数据时,它显示错误而不进行解析,则以十六进制显示输出。

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: true }));

https = require("https");

app.get("/", function (req, res) {
  url = "https://api.covid19api.com/summary";

  https.get(url, function (response) {
    response.on("data", function (data) {
      console.log(JSON.parse(data));
    });
  });
});

app.listen(3000, function () {
  console.log("server is running ");
});

1 个答案:

答案 0 :(得分:0)

它正在返回chunks中的数据。您必须先组装数据。

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({
    extended: true
}));

https = require("https");



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

    url = 'https://api.covid19api.com/summary';

    const request = https.request(url, function (response) {
        let data = '';

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

        response.on('end', () => {
            const body = JSON.parse(data)
            console.log(body);
        });
    });

    request.on('error', (error) => {
        console.log('An error', error);
    })
    request.end();
});



app.listen(3000, function () {
    console.log("server is running ")
});

顺便说一句,我确实建议使用流行的npm软件包,例如request(尽管似乎已弃用)。它将使您的代码更加高效