【发布时间】:2021-07-26 01:54:19
【问题描述】:
console.log(d);给出以下输出(十六进制代码):
当我尝试使用 JSON.parse(d) 将其转换为 JSON 时,我收到以下错误:
未定义:1
{"success":true,"data":{"summary":{"total":19925604,"confirmedCasesIndian":19925556,"confirmedCasesForeign":48,"discharged":16293003,"deaths":218959, "confirmedButLocationUnidentified":0},"unofficial-summary":[{"source":"covid19india.org","total":7945975,"recovered":7198877,"deaths":119538,"active":626192}] ,"regional":[{"loc":"安达曼和尼科巴
SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at IncomingMessage.<anonymous> (E:\Web Development\Test\app.js:16:24)
at IncomingMessage.emit (events.js:315:20)
at IncomingMessage.Readable.read (internal/streams/readable.js:519:10)
at flow (internal/streams/readable.js:992:34)
at resume_ (internal/streams/readable.js:973:3)
at processTicksAndRejections (internal/process/task_queues.js:80:21)
这是我的 app.js 文件代码:
const express = require("express");
const https = require("https");
const app = express();
app.get("/", (req, res) => {
const url = "https://api.rootnet.in/covid19-in/stats/latest";
https.get(url, function(response) {
console.log(response.statusCode);
response.on("data", (d) => {
console.log(JSON.parse(d));
// console.log(d);
})
res.send()
})
})
app.listen(3000, () => {
console.log("server up and running at port 3000");
})
【问题讨论】:
-
response.on("data", (d) => { console.log(JSON.parse(d)); }-d是一个“块”数据,您可能没有收到一个块中的完整数据,但您正在尝试解析它。如果它不是完整的 json 有效负载,则解析将失败,因为它不是有效的 json。等待“结束”事件,然后合并缓冲区并解析。
标签: node.js json api express https