mojax-cache
v1.0.0
Published
mojax request cache middleware
Downloads
18
Maintainers
Readme
Getting started
Add mojax and mojax-cache to your project:
npm install mojax mojax-cache --save
Require the two modules into your code, and create your mojax request instance:
var mojax = require("mojax")(),
cache = require("mojax-cache");
mojax.use(cache());
How mojax uses middleware
Middleware are used to manipulate the request parameters before the actual HTTP request is started.
When you add middleware to a mojax instance, the middleware function gets added to an internal queue.
Every time you make a request, the request parameters you have provided are piped through each middleware.
Each middleware must return the request parameters object for the next middleware to be called. Not returning the request parameters object
(i.e. returning null
or undefined
) is how you can cancel a request.
The mojax request method respects the following flow:
- make a request:
req(params);
- your request parameters are piped through each middleware
- the middleware transform your request parameters
- the final (transformed) request parameters are used to send the HTTP request
- the HTTP request triggers callbacks, based on its progress
How mojax-cache works
Mojax-cache is a factory, when ever you call mojax cache you're creating a new cacheController
, which is the middleware function you want to add to mojax. That's all you need to do.
inner workings
mojax-cache works by caching your successful GET requests by URL. The timestamp and body of each successful GET is cached.
When a new GET request is made, mojax-cache verifies if it has made the request before, if so it adds the If-Modified-Since
header, wraps all onSuccess callbacks and adds a callback of it's own. From there, two things can happen:
- server responds with 200: mojax-cache's callback will cache the successful request
- server responds with 304: mojax-cache fetches the response data from its internal cache, and provides that to the onSuccess callbacks.
Modules
Functions
mojax-cache
module.exports() ⇒ function ⏏
Kind: global method of mojax-cache
Summary: creates a cacheController middleware instance
Returns: function - cacheController middleware function
cacheController() ⇒ object
Kind: global function
Summary: tracks all successful HTTP GET requests and caches their body response with a timestamp.
Once a URL has been cached, if it is re-requested, the controller adds the "If-Modified-Since" header to the request params.
If the server responds with a 304, the controller returns the cached data to the callbacks, allowing each callback to work unknowing of the
304 event.
Access: public
Params: object config - request configuration object