2.0.0 • Published 9 years ago
routebox-ft v2.0.0
Routebox
Routebox integrates with catbox to provide transparent route-level caching. It can work with zero configuration changes on your server.
Usage
To Routebox, simply register it on your server.
server.register(require('routebox'), function (err) {
// ...
});By default, all endpoints with the cache configured in their route options and privacy set to public (or omitted; public is the default) will be cached. Routebox automatically hooks in to the expiresAt, expiresIn, and statuses options of the caching config.
These options are available when routebox is registered and can also be overridden on a per-route basis by passing in config.plugins.routebox:
cachecorresponds to the cache name for response caches. Uses the server's default if not given.enabledwhether to enable caching on the endpoint. Defaults totrue, meaning all viable (see above) endpoints will be cached.digestdefaults todjb2, this is the algorithm used to digest the request for caching purposes. Other available options are:md5,sha1,sha256,sha512,ripemd160.segmentis the Catbox cache segment to store in. Defaults torouteboxwasCachedHeaderheader that gets sent down when we serve a cached response. Defaults toX-Was-Cached.parseconfigures which parts of the request will be used to form the cache key:querywhether to include the query string. Defaults totrue.methodwhether to include the request method. Defaults totrue.pathwhether to include the route path. Defaults totrue.
callbacksprovides touch-points you can use to intercept the request and gather metrics. Each callback functions like a Hapi extension, taking the(request, reply)as arguments, after which you should callreply.continue(). These are called at theonPreResponselifecycle point.onCacheHitis called when a cached page is served.onCacheMissis called when a page that could be cached but is not (yet) is served.authwill skip caching if a user has been authenticated. Defaults tofalse, meaning always cache regardless of whether there is a request.auth object.
In addition there is one other setting that can be specified only in config.plugins.routebox:
pluginCachecan be used to set cache options instead of config.cache. So caching works as specified byconfig.plugins.routebox.pluginCache, but cache-control directives aren't sent out to the browser. If there's an endpoint that can sometimes provide private data, you can callrequest.nocache()to prevent Routebox from caching the request.
2.0.0
9 years ago