繁体   English   中英

NodeJS Http.get()连接数据

[英]NodeJS Http.get() Concatenate Data

这在某种程度上是一个基本问题,但实际上可用的nodeJS引用更少。 为什么:行:

data += data

data = data

从下面的代码有关系吗? 第一个产生选项对象中提供的文件实际内容的两倍,而第二个产生奇怪的缓冲区输出。

http.get(options, (response) => {

    response.on("data", (data) => {
        data += data;
        console.log(data);
    });

    response.on("error", () => {
        console.log("An error has occured. Bummer.");
    });
});

第一个( data += data )将data追加到data ,由于+=导致从BufferString的隐式转换完成,因此您将字符串视为console.log(data);输出console.log(data);

第二个( data = data )只是将data分配给data ,所以它什么也不做。 因此, data类型不会更改,仍然是Buffer

如果要将缓冲区的内容记录为字符串,则可以使用buf.toStringconsole.log(data.toString())

在第一行中,您正在将数据与其自身连接起来,以便它输出两倍的内容。

您想做这样的事情:

var body = "";
request.on('data', function(chunk) {
    body += chunk; // string conversion
}).on('end', function() {
    console.log(body);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM