Ответ 1
Не элегантный способ - просто добавить вызов res.set()
перед любым выводом JSON. Там вы можете указать, чтобы установить заголовок элемента управления кэшем, и он будет кешироваться соответствующим образом.
res.set('Cache-Control', 'public, max-age=31557600'); // one year
Другой подход состоит в том, чтобы просто установить свойство res
для вашего ответа JSON в маршруте, а затем использовать промежуточное программное обеспечение (до обработки ошибок) для визуализации и отправки JSON.
app.get('/something.json', function (req, res, next) {
res.JSONResponse = { 'hello': 'world' };
next(); // important!
});
// ...
// Before your error handling middleware:
app.use(function (req, res, next) {
if (! ('JSONResponse' in res) ) {
return next();
}
res.set('Cache-Control', 'public, max-age=31557600');
res.json(res.JSONResponse);
})
Изменение: res.setHeader
с res.setHeader
на res.set
для Express v4