[英]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
,由于+=
导致从Buffer
到String
的隐式转换完成,因此您将字符串视为console.log(data);
输出console.log(data);
。
第二个( data = data
)只是将data
分配给data
,所以它什么也不做。 因此, data
类型不会更改,仍然是Buffer
如果要将缓冲区的内容记录为字符串,则可以使用buf.toString : console.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.