NodeJS:用户认证后如何重置公共文件夹的缓存控制。

问题描述 投票:0回答:1

其实 "public "文件夹的缓存控制是由.NET Framework 2.0固定的。

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

我想在用户未认证或会话过期时将maxAge重置为0。

有什么方法可以做到吗?

node.js cache-control
1个回答
0
投票

我想你可以这样做,希望这对你有用

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

0
投票

已解决。

关于我原来的要求。

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

但是现在,我用的是.NET技术。

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();
})
© www.soinside.com 2019 - 2024. All rights reserved.