NodeJS: Как сбросить управление кэшем для папки publi c после аутентификации пользователя - PullRequest
0 голосов
/ 04 мая 2020

На самом деле управление кешем для папки «public» фиксируется следующим образом:

app.use(express.static(__dirname + '/public', { maxAge: 31557600000 }));

Я хотел бы сбросить maxAge на 0, когда пользователь не аутентифицирован или сеанс с истекшим сроком действия.

Есть ли способ сделать это? Заранее спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Решено.

По поводу моего первоначального запроса:

function userConnect(req, res){ 
...
res.setHeader('Clear-Site-Data', '"cache", "storage"');
....

Но сейчас я использую:

const serverStarted = moment().unix();
....
app.get("*",function(req, res, next){
  if (req.session&&req.session.serverStarted!=serverStarted) {
    res.setHeader('Clear-Site-Data', '"cache", "storage"');
    req.session.serverStarted = serverStarted;
  }
  next();
})
0 голосов
/ 04 мая 2020

Я думаю, вы можете сделать это так, надеясь, что это сработает для вас

 if(user === authenticated){
    app.use('/public/images/icons', static('public/images/icons', 12345));
    app.use('/public/images/', static('public/images', 1234567);
    etc.  
    }
//function declaration 
 function static(dirname, age) {
            return express.static(path.join(__dirname, dirname), { maxAge: age });
        }
...