Как я могу установить заголовок управления кешем в hapi на 'no-cache', 'no-store', 'must-revalidate'?

В экспресс я могу сделать следующее: 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');
}
3
Chris Smith 26 Фев 2016 в 08:59

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');
    }
});
7
Matt Harrison 26 Фев 2016 в 14:07

В 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

1
srgbnd 17 Сен 2019 в 15:01