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。