【发布时间】:2020-09-01 03:41:45
【问题描述】:
我正在尝试通过 GET 请求在 node/express 中启动并运行一个简单的服务器端缓存。在处理简单的 URL 参数时设法让它工作,但不确定如何使用 JSON 正文来处理它。
这就是我迄今为止的 URL 参数版本:
const mcache = require('memory-cache');
app.set('view engine', 'jade');
const cache = (duration) => {
return (req, res, next) => {
let key = '__express__' + req.originalUrl || req.url;
let cachedBody = mcache.get(key);
if (cachedBody) {
res.send(cachedBody);
return;
} else {
res.sendResponse = res.send;
res.send = (body) => {
mcache.put(key, body, duration * 1000);
res.sendResponse(body);
};
next();
}
};
};
app.get('/user/:id', cache(10), (req, res) => {
setTimeout(() => {
if (req.params.id == 1) {
res.json({ id: 1, name: 'John' });
} else if (req.params.id == 2) {
res.json({ id: 2, name: 'Bob' });
} else if (req.params.id == 3) {
res.json({ id: 3, name: 'Stuart' });
}
}, 3000); //setTimeout was used to simulate a slow processing request
});
任何指针?
【问题讨论】:
标签: javascript node.js api express caching