我如何在Node JS

时间:2018-01-10 20:28:59

标签: javascript node.js leaflet gzip

我想gzip我的index.pug因为显然它是必需的,所以我可以在传单上使用某些VectorTiles。

这是我的server.js

`

var loopback = require('loopback');
var boot = require('loopback-boot');
var compression = require('compression');
var bodyParser = require('body-parser');
var $ = require('jquery');
var app = module.exports = loopback();
var session = require('client-sessions');
var path = require('path');
app.set('views', path.join(__dirname, '../views'));
app.set('view engine', 'pug');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(compression());
app.use(loopback.static(__dirname+'../views'));

app.use(session({
  cookieName: 'session',
  secret: 'random_string_goes_here',
  duration: 30 * 60 * 1000,
  activeDuration: 5 * 60 * 1000,
}));

app.start = function() {
  // start the web server
  return app.listen(function() {
    app.emit('started');
    var baseUrl = app.get('url').replace(/\/$/, '');
    console.log('Web server listening at: %s', baseUrl);
    if (app.get('loopback-component-explorer')) {
      var explorerPath = app.get('loopback-component-explorer').mountPath;
      console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
    }
  });
};
`

这就是我渲染我的' .pug'文件

`    
 module.exports = function (app) {
   app.get('/', function (req, res) {
     //res.setHeader('Content-Encoding', 'gzip');
     res.render('index.pug');
   });
 };
`

我需要设置标题 res.setHeader('内容编码',' gzip'); ,但是当我这样做时收到此错误:ERR_CONTENT_DECODING_FAILED

我读到错误是由文件未压缩引起的。

这是我运行curl时得到的: HTTP/1.1 200 OK vary: Origin, Accept-Encoding access-control-allow-credentials: true x-xss-protection: 1; mode=block x-download-options: noopen x-content-type-options: nosniff content-type: text/html; charset=utf-8 content-length: 26424 etag: W/"6738-EwRjd2/5wySxOECqPhvhuiz7rTc" date: Wed, 10 Jan 2018 22:22:40 GMT X-BACKEND: apps-proxy

修改

所以我认为问题是压缩是用zlib压缩它,当我需要它是gzip时。任何想法如何改变?

1 个答案:

答案 0 :(得分:0)

所以我意识到它实际上正在抓住它。我正在运行ResponseEntity命令,它只是发出一个HEAD请求。由于没有要压缩的主体,因此不会添加标头。而是使用curl -I --compress命令,以便您可以查看它是否正在压缩身体。