我有一个我想要解码的缓冲区,以便我可以将其视为一个对象。
我有以下设置
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}
答案 0 :(得分:4)
您需要创建一个字符串变量来连接所有块,然后在最后使用您的解码器。像这样:
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
});
答案 1 :(得分:0)
尝试request.js
function lucieaverillphotography_scripts() {
if (is_page_template('page-templates/full-page.php')) {
wp_enqueue_style( 'lucieaverillphotography-full-page' , get_template_directory_uri() . '/css/full-page.css');
}
else{
wp_enqueue_style( 'lucieaverillphotography_style', get_stylesheet_uri() );
}
}
add_action( 'wp_enqueue_scripts', 'lucieaverillphotography_scripts' );
反过来管道结果,更简单的信任我
整个http.request /响应行将替换为
npm install request -g --save
,结果是返回解析或服务,工厂或服务消费的好对象