node.js - 表达和压缩,找不到我犯的错误:-(

标签 node.js express curl http-compression

我不知道为什么我无法压缩我的内容。 我尝试了很多方法,但是当我在静态页面或基本本地内容(/)上检查curl(curl -I -H 'Accept-Encoding:gzip' http://localhost:8080/free.html)时,我找不到任何方法来压缩我的内容

我做错了什么? 这是我的代码:

var express = require('express');
var compression =   require('compression');
var morgan =        require('morgan');
var favicon =       require('serve-favicon');

var app =           express();

app.use(compression({
    filter: function () { return true; }
}));
app.use(morgan('combined'));
app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(express.static(__dirname + '/public'));



app.get('/', function(req, res) {
    res.setHeader('Content-Type', 'text/plain');
    res.end('Vous êtes à l\'accueil');
});
app.use(function(req, res){
    res.send(404);
});

app.listen(8080);

谢谢

格雷瓜尔

最佳答案

我还没有弄清楚为什么,但看起来如果阈值设置得不够低,它就不会对其进行编码。这是一个例子:

var express = require('express')
var app = express()
var compression = require('compression')

app.use(compression({ threshold: 6 }))
// app.use(express.static(__dirname + '/dist'))

app.all("/*", function(req, res, next) {
  res.send('done')
})

var server = app.listen(8080)

文档指出 6 是默认值。当我测试这个时:

$ curl -i -H 'Accept-Encoding: gzip' http://localhost:8080

未设置内容编码 header 。当我将其设置为阈值 4 或更低时,它会以编码内容进行响应:

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Vary: Accept-Encoding
Content-Encoding: gzip   // <——————————
Date: Mon, 06 Feb 2017 20:23:24 GMT
Connection: keep-alive
Transfer-Encoding: chunked

K??K??-⏎      

关于node.js - 表达和压缩,找不到我犯的错误:-(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076135/

相关文章:

PHP CURL 使用 POST 原始 JSON 数据

node.js - 为什么nodejs HTTP响应不能写汉字?

node.js - 如何在 node.js 上使用子进程运行 top 命令而不从终端获取 'stdout maxBuffer exceeded'

javascript - 如何创建nodejs websocket客户端

javascript - 有没有办法使用表单中的 name 属性将数组嵌套在对象内?

javascript - 使用node.js require加载模块

json - 在 Express 中读取嵌套的 json 正文参数

node.js - 为什么 mocha 突然开始输出冗长的日志?

brew install php56 --with-cgi curl 错误

c - Unix程序在树莓派上使用条形码输入和cURL命令