koa-incache

0.6.0 • Public • Published

koa-incache

Koa cache middleware

Installation

Koa-incache requires koa2 and node v7.6.0 or higher

npm install koa-incache --save

Example

Basic usage

const cache = require('koa-incache');
const koa = require('koa');
const app = new koa();
 
app.use(cache());
 
app.use(ctx=>{
    const result = 'hello world';
    ctx.cached(result);
    ctx.body = result;
});
 
app.listen(3000);

Routing

The cache is made using ctx.originalUrl as key

const fs = require('fs');
const cache = require('koa-incache');
const koa = require('koa');
const Router = require('koa-router');
const app = new koa();
const router = new Router();
 
app.use(cache({
    maxAge: 60000 // 1 minute max age
}));
 
router.get('/this/is/cached', function (ctx, next) {
    const content = fs.readFileSync('myFile');
    ctx.cached(content);
    ctx.body = content;
});
 
router.get('/this/is/not/cached', function (ctx, next) {
    const content = fs.readFileSync('myFile');
    ctx.body = content;
});
 
router.get('/uncache', function (ctx, next) {
    const content = fs.readFileSync('myFile');
    ctx.cached(content);
    
    if(foo)
        ctx.uncache();
    
    ctx.body = content;
});
 
app
    .use(router.routes())
    .use(router.allowedMethods());
 
app.listen(3000);

Access to InCache instance

From koa context it's possible get InCache by ctx.cache

router.get('/my/root', function (ctx, next) {
    ctx.cache.set('my key', 'my value');
    //...
});

API context

  • cached accept an argument that is the content to be stored
  • uncache remove cache for context root

For more info about InCache click here

Changelog

You can view the changelog here

License

koa-incache is open-sourced software licensed under the MIT license

Authors

Fabio Ricali

Davide Polano

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.6.0
    1
    • latest

Version History

Package Sidebar

Install

npm i koa-incache

Weekly Downloads

4

Version

0.6.0

License

MIT

Unpacked Size

82.5 kB

Total Files

18

Last publish

Collaborators

  • fabioricali