No cache in Node.js server

前端 未结 6 763
北荒
北荒 2020-12-14 05:34

I have read that to avoid caching in Node.js, it is necessary to use:

res.header(\'Cache-Control\', \'no-cache, private         


        
6条回答
  •  情歌与酒
    2020-12-14 06:10

    Make use of a middleware to add no-cache headers. Use this middleware where-ever you intend to turn caching off.

    function nocache(req, res, next) {
      res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
      res.header('Expires', '-1');
      res.header('Pragma', 'no-cache');
      next();
    }
    

    Use the middleware in your routes definition:

    app.get('/getfile', nocache, sendContent);
    
    function sendContent(req, res) {
      var localPath = 'some-file';
      var mimeType = '';
      fs.readFile(localPath, 'utf8', function (err, contents) {
        if (!err && contents) {
          res.header('Content-Type', mimeType);
          res.header('Content-Length', contents.length);
          res.end(contents);
        } else {
          res.writeHead(500);
          res.end();
        }
      });
    }
    

    Let me know if this works for you.

提交回复
热议问题