当前位置: 首页 > 知识库问答 >
问题:

json.parse()返回意外的输入结尾

洪承天
2023-03-14

[`const express=require('express');const app=express();const https=require('https');

常量url=“https://api.thevirustracker.com/free-api?countrytimeline=US”;

app.get(“/”,(req,res)=>{res.send(“server is running”)

https.get(url, (response) => {
    
    response.on("data", (data) => {

        const TimelineData = JSON.parse(data);
        console.log(TimelineData);
        
    })
})

})

app.listen(3000,()=>console.log(“服务器正在运行0n 5000”));`]1

null

js lang-js prettyprint-override">const express = require('express');
const app = express();
const https = require('https');

const url = "https://api.thevirustracker.com/free-api?countryTimeline=US";

app.get("/", (req ,res) => {
    res.send("Server is Running")

    https.get(url, (response) => {
        
        response.on("data", (data) => {

            const TimelineData = JSON.parse(data);
            console.log(TimelineData);
            
        })
    })
})



app.listen(3000, ()=>console.log("Server is Running 0n 5000"));

null

共有1个答案

冀永寿
2023-03-14

可以多次激发“data”事件:https://nodejs.org/api/http.html#http_class_http_clientrequest

您必须监听“End”事件,并将“Data”事件中的所有块连接在一起,以获得全身响应。

const express = require('express');
const app = express();
const https = require('https');

const url = "https://api.thevirustracker.com/free-api?countryTimeline=US";

app.get("/", (req, res) => {

    res.send("Server is Running")

    https.get(url, (response) => {

        const chunks = [];

        response.on("data", (data) => {
            chunks.push(data);
        })

        response.on("end", () => {

            let size = chunks.reduce((prev, cur) => {
                return prev + cur.length;
            }, 0);

            let data = Buffer.concat(chunks, size).toString();

            console.log(JSON.parse(data))

        });

    })

})



app.listen(3000, () => console.log("Server is Running 0n 5000"));
 类似资料:
  • 我使用了以下映射:我修改了英语分析器来使用ngram分析器,如下所示,这样我应该能够在以下情况下进行搜索:1]部分搜索和特殊字符搜索2]以获得语言分析器的优势 将我的数据索引如下:

  • 问题内容: 我正在使用fetch()从api服务器获取数据。我的错误如下所示: 你能告诉我我在做什么错。 问题答案: 一种用于响应请求到跨源资源具有“不透明”的响应类型。如果在尝试将响应转换为JSON之前记录响应,您将看到一种“不透明”的类型。 不透明类型被列为“严重受限”。 不透明的已过滤响应是已过滤的响应,其类型为“不透明”,URL列表为空列表,状态为0,状态消息为空字节序列,标头列表为空,主

  • 我使用fetch()从api服务器获取数据。我的错误是这样的: 你能告诉我我做错了什么吗。

  • 问题内容: 我正在尝试使用Java的SimpleDateFormat来解析带有以下代码的日期字符串。 我期待一些解析错误。但有趣的是,它打印以下字符串。 无法推理出来。有人可以帮忙吗? 谢谢 问题答案: 已将其解析为 月份 号2011,因为month()是日期模式的第一部分。 如果将2011个月加到28年,则得到195年。 2011个月是167年零7个月。七月是第七个月。您将02指定为日,将28指

  • 问题内容: 在尝试进入sql查询数组并获得以下javascript错误后,我尝试通过php jquery传递json。 返回sql结果的函数: 以这种方式使用此功能后, 而javascript代码是这样的: 如何纠正此错误以及如何从jquery读取json? 问题答案: 您不需要调用,因为jQuery自动执行该调用,因为如果未指定属性,则jQuery会尝试猜测它并调用正确的函数来解析响应,然后再将

  • 问题内容: 为什么每次我做时:- 它只是解析很好,但是当我这样做时:- 它给我一个错误,说:- 问题答案: 您要它解析JSON文本(不是)。那是无效的JSON,字符串必须用双引号引起来。 如果要与第一个示例等效: