为了账号安全,请及时绑定邮箱和手机立即绑定

来自 Redis 缓存的数据未分页

来自 Redis 缓存的数据未分页

翻翻过去那场雪 2024-01-18 17:14:39
在我在后端 api 中实现 Redis 缓存之前,分页在后端和前端工作正常,在缓存数据后,它不再工作。这是我在获取所有数据之前运行的中间件const checkCache = (req, res, next) => {  client.get("posts", (err, data) => {    if (err) {      console.log(err);      sendFailureResponse(res, 500, err);    }    if (data != null) {      sendSuccessResponse(res, 200, JSON.parse(data));    } else {      //proceed to next middleware function      next();    }  });};控制器const page = parseInt(req.query.page);    const size = parseInt(req.query.size);    const query = {};    if (page < 0 || page === 0) {      sendFailureResponse(res, 400, "invalid page number")    }    query.skip = size * (page - 1);    query.limit = size;    const posts = await Post.find({}, {}, query).populate("user", ["name"]);    client.setex("posts", 3600, JSON.stringify(posts))    sendSuccessResponse(res, 200, posts);  } catch (err) {    sendFailureResponse(res, 500, err.message);  }如何从缓存中返回分页结果?
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

您只需将页码添加到键 ( 'page' + req.query.page) 中,然后您将获得每页的缓存

顺便说一句,中间件中有一个错误checkCache:如果出现错误,您调用sendFailureResponsenext函数,您将收到“ERR_STREAM_WRITE_AFTER_END”错误


查看完整回答
反对 回复 2024-01-18
  • 1 回答
  • 0 关注
  • 27 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信