Javascript NodeJS:zlib.gunzip(body)错误地返回'undefined'`

Javascript NodeJS:zlib.gunzip(body)错误地返回'undefined'`,javascript,xml,node.js,http,gzip,Javascript,Xml,Node.js,Http,Gzip,我有一个barebones节点服务器,它解析XML文件(从用户定义的URL引用),并将处理后的数据作为CSV文件输出以供下载 我正在尝试实现可选的GZIP解压缩: function loadURL(req, res) { request.get(req.query.url, function(error, response, body) { if (req.query.isGzip == 'true') { zlib.gunzip(body, fu

我有一个barebones节点服务器,它解析XML文件(从用户定义的URL引用),并将处理后的数据作为CSV文件输出以供下载

我正在尝试实现可选的GZIP解压缩:

function loadURL(req, res) {
    request.get(req.query.url, function(error, response, body) {
        if (req.query.isGzip == 'true') {
            zlib.gunzip(body, function(err, dezipped) {
                var xmlData = dezipped.toString('utf-8');
                parseAndOffload(xmlData, req, res);
            });
        } else {
            parseAndOffload(body, req, res);
        }
    });
}
尽管测试URL()是一个具有500kb数据的真实GZip文件,但将GZip文件体传递给
dezipped.toString('utf-8')
将返回
未定义的


为什么?

很可能
body
是一个字符串,
zlib.gunzip()
需要一个流/缓冲区

尝试将
编码:null
设置为选项

encoding—用于响应数据的setEncoding的编码。如果为null,则返回主体作为缓冲区


很可能
body
是一个字符串,
zlib.gunzip()
需要一个流/缓冲区

尝试将
编码:null
设置为选项

encoding—用于响应数据的setEncoding的编码。如果为null,则返回主体作为缓冲区


很可能
body
是一个字符串,
zlib.gunzip()
需要一个流/缓冲区

尝试将
编码:null
设置为选项

encoding—用于响应数据的setEncoding的编码。如果为null,则返回主体作为缓冲区


很可能
body
是一个字符串,
zlib.gunzip()
需要一个流/缓冲区

尝试将
编码:null
设置为选项

encoding—用于响应数据的setEncoding的编码。如果为null,则返回主体作为缓冲区


互联网的速度真的让我大吃一惊。非常感谢,这就完成了。互联网的速度真的让我大吃一惊。非常感谢,这就完成了。互联网的速度真的让我大吃一惊。非常感谢,这就完成了。互联网的速度真的让我大吃一惊。非常感谢,完成了。
request.get(req.query.url, {encoding: null}, function(error, response, body) {
    if (req.query.isGzip == 'true') {
        zlib.gunzip(body, function(err, dezipped) {
            var xmlData = dezipped.toString('utf-8');
            parseAndOffload(xmlData, req, res);
        });
    } else {
        parseAndOffload(body, req, res);
    }
});