nextjs 使用 lru-cache 进行缓存,在api里访问不到page中的缓存

因为Next.js中的页面和API路由是两个不同的执行上下文,它们之间的数据共享并不直接。

解决这个问题的一种常见方法是将缓存实例化为一个单独的模块,并在页面和API路由中共享这个模块。这样,无论是页面还是API路由,它们都可以访问到相同的缓存实例,从而实现数据共享。

下面是一个简单的示例代码,演示如何在Next.js中共享lru-cache缓存:

1、创建一个单独的cache.js文件,并在其中实例化lru-cache:

javascript 复制代码
// cache.js
const LRU = require('lru-cache');
const cache = new LRU({ max: 100 });

module.exports = cache;

2、在需要访问缓存的页面和API路由中引入cache.js文件,以共享缓存实例:

复制代码
// 在页面中引入缓存
import cache from '../path/to/cache.js';

// 在API路由中引入缓存
const cache = require('../path/to/cache.js');

这样,页面和API路由都可以通过引入相同的cache.js文件来访问相同的缓存实例,实现数据共享。

相关推荐
zjeweler14 分钟前
redis_tools_gui_v1.2 —Redis图形化漏洞利用工具
数据库·redis·web安全·缓存·安全性测试
夜空下的星33 分钟前
使用redisson操作redis详解
数据库·redis·缓存
weixin_4563216433 分钟前
生产环境Redis部署选型最佳实践
数据库·redis·缓存
FL4m3Y4n40 分钟前
Redis相关命令与原理
数据库·redis·缓存
heimeiyingwang1 小时前
【架构实战】缓存架构 Redis 集群部署
redis·缓存·架构
Augustine Electra13 小时前
Flutter 三方库 memoize 的鸿蒙化实战 - 引入极简缓存引擎,避免重复计算,大幅提升鸿蒙应用渲染性能,让你的高刷体验更稳更丝滑。
flutter·缓存·harmonyos
闻哥18 小时前
MySQL InnoDB 缓存池(Buffer Pool)详解:原理、结构与链表管理
java·数据结构·数据库·mysql·链表·缓存·面试
gechunlian8818 小时前
redis exporter手册
数据库·redis·缓存
小龙报19 小时前
【数据结构与算法】栈和队列的综合应用:1.用栈实现队列 2.用队列实现栈 3.设计循环队列
c语言·数据结构·数据库·c++·redis·算法·缓存
油丶酸萝卜别吃19 小时前
Redis 通常应用于哪些场景?
数据库·redis·缓存