abb*_*ood 5 compression gzip http-compression node.js express
我一直在这几个小时..
我做的第一件事是按照本教程进行操作,其中包含以下代码:
var express = require('express');
var app = express();
// New call to compress content
app.use(express.compress());
app.use(express.static(__dirname + '/public'));
app.listen(3333);
Run Code Online (Sandbox Code Playgroud)
自然代码已经过时了..我收到了这个错误:
Error: Most middleware (like compress) is no longer bundled with Express and must be installed separately. Please see https://github.com/senchalabs/connect#middleware.
Run Code Online (Sandbox Code Playgroud)
所以我将代码更新为:
var express = require('express');
var app = express();
var compression = require('compression')
app.use(compression());
app.use(express.static(__dirname + '/_public' ));
app.listen(3333);
Run Code Online (Sandbox Code Playgroud)
效果很好..但我没有看到压缩的证据(我怎么知道?通过查看 chrome 开发工具响应标头:

它没有content-encoding教程中的 gzip标头:

所以尝试改用zlib库:
var express = require('express');
var app = express();
var maxAge = 31557600000;
var zlib = require('zlib');
app.use(express.static(__dirname + '/_public' ));
app.get('/*', function(req,res)
{
res.sendFile(__dirname + '/_public/index.html').pipe(zlib.createGunzip()).pipe(output);
});
app.listen(3333);
Run Code Online (Sandbox Code Playgroud)
但这也没有解决..此时我几乎秃了..有什么帮助吗?
ps压缩文档说你可以提供zlib选项,但没有提供任何例子/解释。
更新: 该问题已被完全回答并标记为这样(我讨厌移动目标问题)..但我不禁要问:那么您如何验证由于 gzip 压缩而减少了多少原始有效负载? 由于压缩/解压缩自然发生在幕后,因此 chrome 开发工具将在其网络选项卡中报告文件的原始大小:

小智 5
zlib.createGunzip() 用于解压。
我认为使用标题和流是有效的。
app.get('/', function(req,res){
res.writeHead(200, {
'Content-Encoding': 'gzip' });
fs.createReadStream('_public/index.html').pipe(zlib.createGzip()).pipe(res);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4422 次 |
| 最近记录: |