Node.js 如何在express中压缩fs.createReadStream

Node.js 如何在express中压缩fs.createReadStream,node.js,express,compression,Node.js,Express,Compression,我有这个密码 const express = require('express') const compression = require('compression') const app = express() const fs = require('fs'); const path = require('path'); const port = process.env.PORT || 3003; app.use(compression()) app.use('/public', expre

我有这个密码

const express = require('express')
const compression = require('compression')
const app = express()
const fs = require('fs');
const path = require('path');
const port = process.env.PORT || 3003;

app.use(compression())
app.use('/public', express.static('public'));

app.get('/', (req, res) => {
    fs.createReadStream(__dirname + '/public/src/index/index.html').pipe(res);
});

app.listen(port, () => {
    console.log(`Portfolio listening on port ${port}`)
})
在chrome开发工具中,
index.html
中请求的
app.js
文件是gzip文件,但第一个文件(上面代码中提到的
index.html
文件)不是gzip文件


如何在流式传输
index.html
文件之前压缩该文件?

如何使用
zlib
模块:

fs.createReadStream(__dirname + '/public/src/index/index.html')
  .pipe(zlib.createGzip())
  .pipe(res);

我认为使用压缩中间件应该已经解决了这个问题。您是如何验证压缩丢失的?在chrome dev tools中,index.html文件的内容编码为空,而JS文件的内容编码为gzip。