node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »


simple-request-caching Build Status

A very simple caching approach for requests.


There are no external dependencies for the code, so feel free to copy+paste it into whatever framework you are using (e.g., here's an Angular example). Otherwise, install using:

npm install simple-request-caching


The basic setup is this:

var CachedRequest = require('simple-request-caching')
var request = new CachedRequest({
    cacheMillis: 500, // the millis that the request is cached, or -1 for forever 
    request: function(params) {
        return http.get('/url/path', params)

Set a single one of those up for any request you want to cache, then use it like:

request({ key: 'value' }).then(function(data) {
    // the response from the http.get(), as a promise 


When you make a new CachedRequest, it has the following parameters:

  • cacheMillis (required): The number of milliseconds to cache the request response. Use -1 to cache things forever.
  • request (required): The function called when a request is not cached. Must return a promise. Rejected promises are not cached.
  • stringify (optional): A function that is called to stringify the request parameters. If unspecified, a default is used which will stringify flat object correctly and efficiently. If you have deeper objects, you'll want to implement your own stringify function.