Natively Pluggable Module

    mojax-cache

    1.0.0 • Public • Published

    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:

    1. make a request: req(params);
    2. your request parameters are piped through each middleware
    3. the middleware transform your request parameters
    4. the final (transformed) request parameters are used to send the HTTP request
    5. 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

    mojax-cache

    Functions

    module.exports()function
    cacheController()object

    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

    Install

    npm i mojax-cache

    DownloadsWeekly Downloads

    2

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • sebastiendaniel