亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

來自 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 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號