Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fabioricali/koa-incache

Koa cache middleware
https://github.com/fabioricali/koa-incache

Last synced: about 2 months ago
JSON representation

Koa cache middleware

Awesome Lists containing this project

README

        


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

```javascript
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
```javascript
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`

```javascript
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