使用JSON正文在服务器端缓存节点/表达GET请求

编程入门 行业动态 更新时间:2024-10-10 19:27:46

使用JSON正文在服务器端缓存<a href=https://www.elefans.com/category/jswz/34/1771452.html style=节点/表达GET请求"/>

使用JSON正文在服务器端缓存节点/表达GET请求

我正在尝试使用GET请求在节点/表达式中启动并运行一个简单的服务器端缓存。在处理简单的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
});

任何指针?

回答如下:我假设您要将带有res.send的数据传递给app.get?如果是这样,您既可以在next()内部传递它,也可以像res.locals这样使用res.locals.varName = catchedBody,然后就可以在app.get函数内部使用它,因为它将在整个http请求期间可用。

更多推荐

使用JSON正文在服务器端缓存节点/表达GET请求

本文发布于:2024-05-07 15:34:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756939.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:节点   缓存   服务器端   正文   JSON

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!