@raito-cache/expressjs
v0.0.3-s.1
Published
API and middleware for expressjs to communicate with raito-cache server
Downloads
200
Readme
raito-expressjs
Table of contents
About
raito-expressjs - is an express.js middleware and API for communicating with Raito cache server.
Getting started
[!IMPORTANT] Node.js 18.x+ version must be installed in your OS.
1. Install server
$ yarn add express
$ yarn add @raito-cache/expressjs
2. Connect to Raito
import { Raito } from '@raito-cache/expressjs';
const raito = new Raito(); // defaul connection is localhost:9180
3. Use middleware
import { cacheResponse } from '@raito-cache/expressjs'
app.get('/api/route', cacheResponse());
API
Connect to Raito
new Raito(); // Connect to localhost:9180
new Raito(7180); // localhost:7180
new Raito('raito://localhost:9180'); // localhost:9180
new Raito('raito://localhost:9180?ttl=5000'); // localhost:9180 and ttl 5s
new Raito({
port: 9180, // Raito port
host: 'localhost', // Raito host
ttl: 10000, // Cache records time to live
});
Usage
Raito class
import { Raito } from '@raito-cache/expressjs';
const raito = new Raito();
await raito.set('key', { data: 'some data' }); // Create new record
await raito.set('key2', 'other data', 15000); // Create new record with 15s ttl
await raito.get('key2'); // Output: { key: 'key', data: 'other data', createdAt: Date, ttl: 15000 }
await raito.clear('key'); // Deletes record
await raito.shutdown(); // Close connection
Express.js middleware
import { cacheResponse } from '@raito-cache/expressjs'
import { Raito } from '@raito-cache/expressjs';
const raito = new Raito();
app.get('/api/route', cacheResponse()); // Caches responses
app.get('/api/timeSensetive/data', cacheResponse(15000)); // Cache response with setting record ttl
Raito Deployment
- Pull docker image:
$ docker pull stbestich/raito-cache:latest
- Run it
$ docker run -e HOST=<host> -p <port>:9180 -it stbestich/raito-cache
Use with docker-compose
services:
raito-cache:
image: stbestich/raito-cache:latest
ports:
- "${PORT:-9180}:${PORT:-9180}"
- "${PORT:-9181}:${PORT:-9181" # Define second port if you need http proxy
env_file:
- .env
environment:
NODE_ENV: production
PORT: ${PORT:-9180}
HOST: ${HOST:-0.0.0.0}
TTL: ${TTL}
tty: true
stdin_open: true
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Changelog
Project changes are writen in changelog, see the CHANGELOG.md.
We use SemVer for versioning. For the versions available, see the tags on this repository. For the versions supported, see the SECURITY.md.
Authors
License
This project is licensed under the MIT License - see the LICENSE.md