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文件来访问相同的缓存实例,实现数据共享。

相关推荐
Q的世界2 小时前
redis源码编译安装
数据库·redis·缓存
C_心欲无痕2 小时前
vue3 - 内置组件KeepAlive优化组件状态缓存
前端·vue.js·缓存
大布布将军4 小时前
⚡️ 性能加速器:利用 Redis 实现接口高性能缓存
前端·数据库·经验分享·redis·程序人生·缓存·node.js
_OP_CHEN5 小时前
【C++数据结构进阶】吃透 LRU Cache缓存算法:O (1) 效率缓存设计全解析
数据结构·数据库·c++·缓存·线程安全·内存优化·lru
消失的旧时光-19435 小时前
Repository 层如何无缝接入本地缓存 / 数据库
数据库·flutter·缓存
stand_forever5 小时前
redis秒杀实现
redis·缓存·php
消失的旧时光-19435 小时前
用 Drift 实现 Repository 无缝接入本地缓存/数据库(SWR:先快后准)
数据库·flutter·缓存
Tony Bai5 小时前
【API 设计之道】08 流量与配额:构建基于 Redis 的分布式限流器
数据库·redis·分布式·缓存
想学后端的前端工程师5 小时前
【Redis实战与高可用架构设计:从缓存到分布式锁的完整解决方案】
redis·分布式·缓存
墨者阳19 小时前
数据库的自我修炼
数据库·sql·缓存·性能优化