【问题标题】:I keep getting "Unexpected end of JSON input"我不断收到“JSON 输入意外结束”
【发布时间】:2020-05-06 08:00:51
【问题描述】:
app.get("/dashboard", function(req, res) {
  const country = "Singapore";

  // I used a constant in desperation

  const url =
    "https://api.covid19api.com/live/country/" + country;
  https.get(url, function(response) {
    response.on("data", function(data) {
      const caseData = JSON.parse(data);

      // Error stems from here

      res.render("cases", { caseData: caseData });
    });
  });
});

【问题讨论】:

  • @AKX 答案是正确的。您可以使用第三方库来让生活更轻松。我会推荐github.com/request/request,但它已被弃用。环顾四周,看看是否能找到任何你喜欢的图书馆。

标签: node.js json api


【解决方案1】:

在尝试解析之前,您无需等待整个消息。

为来自 HTTP 响应的每个数据块调用 data 事件。响应不一定适合单个块。

在尝试解析 JSON 之前,您必须等待 end 事件...或者最好使用更高级别的库,例如 node-fetch,以获得更舒适的基于 Promise 的 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-10
    • 2015-08-05
    • 2015-03-15
    • 2018-05-15
    • 2021-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多