Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

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

Install

npm i koa-incache

DownloadsWeekly Downloads

2

Version

0.6.0

License

MIT

Unpacked Size

82.5 kB

Total Files

18

Last publish

Collaborators

  • avatar