【问题标题】:Node.js: Unable to compress response using expressNode.js:无法使用 express 压缩响应
【发布时间】:2016-06-29 16:44:41
【问题描述】:

我正在为我的 app.js 使用 express 版本 4.13.4 和以下代码。我尝试更改 app.use(compression()) 的位置,但没有显示任何效果。当我运行应用程序时,我在查看 chrome 开发工具响应标头时没有看到任何压缩证据,即它没有 gzip 内容编码标头。 我是节点 js 的新手。我想 gzip 压缩我对浏览器的响应。请帮我解决这个问题。

var compression = require('compression')
var express = require('express');
var http = require('http');
var app = express();
app.use(compression());
var settings = {
    UiServerPort:         8080, 
    ApiServerHost: "localhost", 
    ApiServerPort:       12121
};

app.use('/ui', express.static('ui')); 
app.all('/api/*', function (req, res) {
    var options = {
        host: settings.ApiServerHost,
        port: settings.ApiServerPort,
        path: req.url.substring(4), 
        method: 'POST' 
    };

    var requestData = '';
    req.on('data', function (data) { requestData += data; });
    req.on('end', function () {
        var request = http.request(options, function (response) {
            var responseData = '';
            res.flush();
            response.on('data', function (data) { responseData += data; });

            response.on('end', function () {
                res.statusCode = response.statusCode;
                res.write(responseData);
                res.end();
            });
        });
        request.write(requestData);
        request.end();
    });
});
app.listen(settings.UiServerPort)

【问题讨论】:

  • 谁能帮我解决这个问题?我还没有收到任何答复。谢谢

标签: node.js express compression gzip http-compression


【解决方案1】:

您看到了“Vary Accept-Encoding”??如果您不使用压缩,则不会显示。我粘贴了您的代码,但它无法运行。

【讨论】:

  • 浏览器请求标头上的接受编码显示:gzip,放气。你问的是这个吗?
【解决方案2】:

代替

app.use(compression())

你应该添加这段代码:

app.use(compression({filter: shouldCompress}))

function shouldCompress (req, res) {
   if (req.headers['x-no-compression']) {
       // don't compress responses with this request header
       return false
   }

  // fallback to standard filter function
   return compression.filter(req, res)
 }

PS:它对我有用。

【讨论】:

    猜你喜欢
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2013-10-23
    • 1970-01-01
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    相关资源
    最近更新 更多