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

相关推荐
Codeking__3 小时前
Redis的value类型介绍——set
数据库·redis·缓存
Codeking__5 小时前
Redis的value类型介绍——list
数据库·redis·缓存
我科绝伦(Huanhuan Zhou)6 小时前
PostgreSQL存储管理核心技术解析:架构、页面模型与缓存机制
缓存·postgresql·架构
難釋懷6 小时前
Redis简单介绍
数据库·redis·缓存
ChineHe6 小时前
Redis数据类型篇003_详解Lists列表类型及其命令
数据库·redis·缓存
Codeking__7 小时前
Redis的value类型及编码方式介绍——string
数据库·redis·缓存
七夜zippoe8 小时前
缓存策略:从本地到分布式架构设计与Python实战
分布式·python·缓存·lfu·lru
oMcLin8 小时前
如何在 Debian 10 上通过配置 Redis 集群的持久化选项,提升高可用性缓存系统的容错性与性能?
redis·缓存·debian
程序员柒叔10 小时前
Dify 集成-数据库与缓存
数据库·缓存·dify
程序媛哪有这么可爱!11 小时前
【删除远程服务器vscode缓存】
服务器·人工智能·vscode·缓存·边缘计算