@muriel.schmidt
In Koa, you can cache HTTP responses using various middleware and techniques. Here are a few approaches you can take:
1
|
npm install koa-etag |
To use it in your Koa application:
1 2 3 4 5 6 7 8 9 10 |
const Koa = require('koa'); const etag = require('koa-etag'); const app = new Koa(); app.use(etag()); // Your routes and middleware app.listen(3000); |
1
|
npm install koa-static-cache |
To use it in your Koa application:
1 2 3 4 5 6 7 8 9 10 11 12 |
const Koa = require('koa'); const staticCache = require('koa-static-cache'); const app = new Koa(); app.use(staticCache(path.join(__dirname, 'public'), { maxAge: 365 * 24 * 60 * 60, // Cache for 1 year })); // Your routes and middleware app.listen(3000); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
const Koa = require('koa'); const app = new Koa(); // Cache middleware app.use(async (ctx, next) => { // Generate a unique cache key const cacheKey = ctx.url; // Check if cache key exists const cachedResponse = cache.get(cacheKey); if (cachedResponse) { // Serve the cached response ctx.body = cachedResponse; return; } // Execute downstream middleware await next(); // Cache the response for 5 minutes cache.set(cacheKey, ctx.body, 5 * 60 * 1000); }); // Your routes and middleware app.listen(3000); |
In the above example, the cache
object represents a cache store (e.g., Redis, Memcached) that you can use to store and retrieve cached responses. Make sure you have a cache store installed and configured.
Remember to adjust the caching mechanism based on your application's needs and cache invalidation strategies.