2016-04-07 3 views
0

У меня есть это в моем app.js:сервировка сжатого ответ API

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'); 
}); 

статические файлы получить служил с содержанием -Encoding значение свойства как gzip. Когда я наблюдаю ответ API в браузере, свойство Content-Encoding не является «gzip». Что мне нужно для того, чтобы API также использовался в формате gzip?

ответ

1

Вы добавили промежуточное ПО маршрутизатора до промежуточного программного обеспечения для сжатия, что означает, что запросы, которые обрабатываются маршрутизатором, никогда не достигнут промежуточного программного обеспечения сжатия.

Вы должны изменить порядок этих: промежуточное программное

app.use(express.compress()); 
app.use(app.router); 

Как и в сторону: Вы, кажется, использует Экспресс 3, который был устаревшим.