我的app.js中有这个:
app.configure(function() {
app.use(express.cookieParser());
app.use(express.bodyParser());
app.use(express.session({
secret: 'supersecretkeygoeshere',
store: new MySQLStore(options),
//cookie: {maxAge: 1000}
}));
app.use(passport.initialize());
app.use(passport.session());
app.set('views', path.join(__dirname, 'public'));
app.use(express.favicon());
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.compress());
除了提供静态文件外,我还提供了一个API,如:
app.get('/api/myfun', function(req, res) {
res.json('Lot of data');
});
静态文件使用Content-Encoding属性值作为gzip提供。当我在浏览器中观察到API的响应时,Content-Encoding属性不是" gzip"。 我还需要做什么才能以gzip格式提供API?
答案 0 :(得分:1)
您已经在压缩中间件之前添加了路由器中间件,这意味着路由器处理的请求永远不会到达压缩中间件。
您应该更改这些中间件的顺序:
app.use(express.compress());
app.use(app.router);
顺便说一句:您似乎使用的是Express 3,已被弃用。