Node.js Gzip不适用于`fs.createReadStream`

Node.js Gzip不适用于`fs.createReadStream`,node.js,gzip,zlib,Node.js,Gzip,Zlib,出于某种原因,gzip没有被应用到我的读取流中,我不知道为什么 下面是我编写的函数,body将始终是来自fs.createReadStream的流,或者只是一个原始字符串。如果传入字符串,则将应用gzip,但在使用流时不会应用gzip export function send(res, code, body) { res.setHeader('Content-Encoding', 'gzip'); res.writeHead(code); if(body instanceof St

出于某种原因,gzip没有被应用到我的读取流中,我不知道为什么

下面是我编写的函数,
body
将始终是来自
fs.createReadStream
的流,或者只是一个原始字符串。如果传入字符串,则将应用gzip,但在使用流时不会应用gzip

export function send(res, code, body) {
  res.setHeader('Content-Encoding', 'gzip');
  res.writeHead(code);

  if(body instanceof Stream) {
    body.pipe(zlib.createGzip());
    body.pipe(res);
    return;
  }

  body = zlib.gzipSync(body);

  res.end(body);
}
我在Chrome中遇到这个错误:

ERR_CONTENT_DECODING_FAILED

有什么想法吗?

应该是
body.pipe(zlib.createGzip()).pipe(res),您正在发送原始流

它应该是
body.pipe(zlib.createGzip()).pipe(res),您正在发送原始流