No cache in Node.js server

Viewed 80401

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

res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0');

But I don't know how to use it because I get errors when I put that line in my code.

My function (where I think I have to program the Cache-Control header) is:

function getFile(localPath, mimeType, res) {
  fs.readFile(localPath, function(err, contents) {
    if (!err) {
      res.writeHead(200, {
        "Content-Type": mimeType,
        "Content-Length": contents.length,
        "Accept-Ranges": "bytes",
      });
      // res.header('Cache-Control', 'no-cache');
      res.end(contents);
    } else {
      res.writeHead(500);
      res.end();
    }
  });
}

Does anyone know how to put no cache in my code?

6 Answers

You can use nocache Middleware to turn off caching.

npm install --save nocache

Apply the middleware to your app

const nocache = require('nocache');
...
app.use(nocache());

This disables browser caching.

Related