节点:zlib.gunzip 有效,但 zlib.inflate 无效?

Node: zlib.gunzip works, but not zlib.inflate?

为什么我上传的 GZIP 文件可以用 zlib.gunzip() 很好地解压,但上传的 ZIP 文件导致 zlib.inflate()[Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' 错误,使用下面的代码?

if (req.body.compression == 'GZIP') {
    zlib.gunzip(body, function(err, dezipped) {
        if (typeof dezipped != 'undefined') {
            var xmlData = dezipped.toString('utf-8');
            app.parseAndOffload(req, res, xmlData);
        } else
            res.status(400).send('Could not decompress as GZIP file')
    });
    //-> Decompresses perfectly
} else 
if (req.body.compression == 'ZIP') { 
    zlib.inflate(body, function(err, dezipped) {
        if (typeof dezipped != 'undefined') {
            var xmlData = dezipped.toString('utf-8');
            app.parseAndOffload(req, res, xmlData);
        } else
            res.status(400).send('Could not decompress as ZIP file')
    });
    //-> [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR'
}

zlib.inflate 解码 zlib 格式,而不是 zip 格式。 zip 格式有tools out there