Установить заголовок кеша в hapi

Как я могу установить для заголовка управления кешем в hapi значение «без кеша», «без хранения», «необходимо перепроверить»?

В экспрессе я могу сделать следующее: res.header('Cache-Control', 'no-cache, no-store, must-revalidate');

В настоящее время у меня есть следующее в hapi, но я думаю, что это может быть неправильно:

function(request, reply){
  var response = reply();
  response.header('Cache-Control', 'no-cache');
  response.header('Cache-Control', 'no-store');
  response.header('Cache-Control', 'must-revalidate'
}

Возможно ли это сделать в хапи?

function(request, reply){
  var response = reply();
  response.header('Cache-Control', 'no-cache, no-store, must-revalidate');
}

person Chris Smith    schedule 26.02.2016    source источник
comment
Как принудительно кэшировать какой-либо файл?   -  person FindOut_Quran    schedule 23.12.2016


Ответы (2)


Да, ты можешь сделать это. Эта строка ('no-cache, no-store, must-revalidate') является единственным значением заголовка, поэтому установите ее как любой заголовок. Вызовом метода header() для объекта ответа.

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {

        reply('ok').header('Cache-Control', 'no-cache, no-store, must-revalidate');
    }
});
person Matt Harrison    schedule 26.02.2016
comment
Потрясающий. Спасибо за подтверждение. - person Chris Smith; 26.02.2016
comment
Как вы делаете это для всех маршрутов? - person clocksmith; 22.03.2017
comment
Вы можете установить заголовок в точке расширения жизненного цикла маршрута. Взгляните на onPreResponse в документах hapi. - person Matt Harrison; 23.03.2017

В hapi v17 и v18 вы можете установить заголовок таким образом

server.route({
  method: 'GET',
  path: '/',
  handler: function (request, h) {
    return h.response('ok').header('Cache-Control', 'no-cache, no-store, must-revalidate');
  }
});

Документация: https://hapi.dev/tutorials/caching/?lang=en_US

person srgbnd    schedule 17.09.2019