Express middleware to handle Cache-Control header, this is used by browsers with HTTP 1.1 support to know about content expiration, and when to deliver content from navigator's cache. This is a huge performance improvement when loading content from a website.
$ npm install express-cache-ctrl
var app = express();
var cache = require('express-cache-ctrl');
app.use('/api', cache.disable());
Returns a middleware you can use on express pipeline, to disable content caching.
Returns a middleware you can use on express pipeline, to disable content caching. This method is recomended by OWASP.
Returns the cache middleware using the given options
and ttl
. This middleware sets Cache-Control scope to private.
Cache Time-To-Live in seconds or in ms() notation. e.g. 1d
private()
accepts these properties in the options object.
Cache ttl in seconds (max-age). Defaults to 1h
.
Shared cache ttl in seconds (s-maxage). Defaults to 1h
.
Boolean to specify if content must be revalidated by the browser.
Boolean to specify if content must be revalidated by proxy servers.
Boolean to disable header transformation.
Returns the cache middleware using the given options
and ttl
. This middleware sets Cache-Control scope to public.
Cache Time-To-Live in seconds or in ms() notation. e.g. 1d
public()
accepts these properties in the options object.
Cache ttl in seconds (max-age). Defaults to 1h
.
Shared cache ttl in seconds (s-maxage). Defaults to 1h
.
Boolean to specify if content must be revalidated by the browser.
Boolean to specify if content must be revalidated by proxy servers.
Boolean to disable header transformation.
Returns the cache middleware using the given options
.
custom()
accepts these properties in the options object.
Sets the Cache-Control scope. Either public
or private
.
Cache ttl in seconds (max-age). Defaults to 1h
.
Shared cache ttl in seconds (s-maxage). Defaults to 1h
.
Boolean to specify if content must be revalidated by the browser.
Boolean to specify if content must be revalidated by proxy servers.
Boolean to disable header transformation.
Disables content caching and sets header to: no-cache, no-store
.
When using this module with express or connect, simply app.use
the module as
high as you like. Also it can be used in any stage in any express pipeline or route.
Setting default cache to private, and 1 hour to expiration.
var express = require('express');
var cache = require('express-cache-ctrl');
var app = express();
app.use(cache.private(3600)); // 1 min.
app.get('/hello', function(req, res) {
res.json({hello: 'world!'});
});
Setting secure cache to specific route.
var express = require('express');
var cache = require('express-cache-ctrl');
var app = express();
app.get('/hello', cache.secure(), function(req, res) {
res.json({hello: 'world!'});
});
For more examples, you can watch out, the unit tests for this module. test/cache.js