GithubHelp home page GithubHelp logo

nvdnkpr / connect-cache Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tdebarochez/connect-cache

0.0 2.0 0.0 171 KB

Caching system for Connect framework

Home Page: https://github.com/tdebarochez/connect-cache

License: MIT License

connect-cache's Introduction

Connect-cache

Connect-cache is a middleware for Connect framework. It provides a easy way to cache GET requests on your application.

Usage

This middleware must be on the first called.

var connect_cache = require('connect-cache');
var connect = require('connect');
var server = connect.createServer(
  connect_cache({rules: [{regex: /.*/, ttl: 60000}]}),
  function(req, res) {
      res.writeHead(200, { 'Content-Type': 'text/plain' });
      res.end('Hello World');
  }
).listen(3000);

ConnectCache take only one parameter, a hash with following keys :

  • rules : a set regular expression / ttl pairs, that should match on urls
  • loopback (optional, default parse "Host" header in request) : host and port to call to get contents, ex : 'localhost:3000'
  • storage (optional, default instance of BasicStorage) : the key-value storage system, see Storage paragraph for more informations
  • sensitive (optional, default true) : caching datas are based on URL and sometimes URLs must be treated case insensitive. This option is here to avoid duplicate caches.

Rules must looks like :

{rules: [{regex: /path\/.*/, ttl: 60000},
         {regex: /other\/path\/.*/, ttl: 3600000},
         {regex: /specified.file/, ttl: 6000000}]}

Default TTL is in ms, default value is 3600000.

Storage

This package provide three bundled ways (a basic based file system, a basic memory and a wrapper for couchdb) to store your items, but you can define your own one. The storage class must implements 3 methods :

  • get(key, callback) : get content for the given key.
  • set(key, content, callback) : set content for the given key.
  • remove(key, callback) : invalidate datas for the given key.
  • writeStream(key, callback) : (optional) used to write cached content as stream
  • readStream(key, callback) : (optional) used to read cached datas as stream

Look at examples/ folder for examples of bundled storage system.

Installation

$ npm install connect-cache

How it works

This module catch every request that match on a regular expression and call, if the result is not cached, himself with extra HTTP header : x-no-cache. The results is store and forward to final client.

Requirements

  • node (>= 0.4.6)
  • connect (>= 0.2.4)
  • express & expresso - for tests
  • markdown - for documentation generation
  • cradle (= 0.1.0) - for CouchDB storage system

connect-cache's People

Contributors

kul avatar tdebarochez avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.