缓冲区中的nodejs解码字符串返回多行字符串

nodejs decoded string from buffer returns multi line string

本文关键字:字符串 返回 解码 nodejs 缓冲区      更新时间:2023-09-26

我有一个缓冲区,我想对其进行解码,以便将其视为对象。

我有以下设置

var StringDecoder = require('string_decoder').StringDecoder;
var req = http.request(reqOptions, function(res) {
    ...
    var decoder = new StringDecoder('utf8');
    res.on('data', function(chunk) {
        var textChunk = decoder.write(chunk);
        console.log(textChunk);
    });
});

textChunk returns-请注意这是如何在多行上进行的。

{"aaa":true,"bbb":true, "cc
c":true, "ddd":true, "eee":true, "f
ff":true, "ggg":true}

所以当我尝试将其转换为对象时

JSON.parse(textChunk) 

我得到Unexpected end of input

如何将字符串作为一行返回,以便将其视为对象。

{"aaa":true,"bbb":true, "ccc":true, "ddd":true, "eee":true, "fff":true, "ggg":true}

您需要创建一个字符串变量来连接中的所有块,然后在最后使用解码器。类似这样的东西:

var text = '';
res.on('data', function(chunk) {
    text += chunk;
});
res.on('end', function() {
    var decoder = new StringDecoder('utf8');
    var result = decoder.write(text);
    // Do something with the result
});

尝试request.js

npm install request -g --save

而管道的结果,更简单的相信我

整个http.request/响应行将被取代

res.pipe(url),结果是返回一个好的对象,由服务、工厂或服务解析或消费