Gzip不适用于`fs.createReadStream`

时间:2016-07-02 11:11:39

标签: node.js gzip zlib

由于某种原因,gzip没有应用于我的读取流,我不知道为什么。

这是我写的函数,body将始终是来自fs.createReadStream的流或者只是一个原始字符串。如果我传入一个字符串,则会应用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

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

应该是EmailValidator,您正在发送原始流