上面的链接包含一个express
代码,您可以对其进行缓存,如下所示。
const mcache = require('memory-cache');
const cache = (duration = 5) => {
return (req, res, next) => {
let key = `${req.originalUrl}`;
let cachedBody = mcache.get(key);
console.log(cachedBody);
if (cachedBody) {
res.send(cachedBody);
} else {
res.sendResponse = res.send;
res.send = body => {
mcache.put(key, body, duration * 1000);
res.sendResponse(body);
};
next();
}
};
};
我更改了上面的代码,以便可以在koa
中使用它。
const mcache = require('memory-cache');
const cache = async (ctx, next, duration = 5) => {
let key = `${req.originalUrl}`;
let cachedBody = mcache.get(key);
console.log(cachedBody);
if (cachedBody) {
ctx.body = cachedBody;
} else {
ctx.body = mcache.put(key, ctx.body, duration * 1000);
next();
}
};
不过,cachedBody
仍然是null
。
koa
中运行?res.send()
更改为对象类型ctx.body
来使缓存起作用吗? koa
中进行缓存? 我将不胜感激任何评论或答案。