我正在做一个Next.js项目,希望为tRPC结果实现内存缓存,每个tRPC过程都可以选择加入自定义TTL。我认为tRPC的中间件适合这个目的。不幸的是,current tRPC middleware documentation似乎没有涵盖这个特定的场景。
如何在tRPC 10中实现服务器端缓存中间件?
我正在做一个Next.js项目,希望为tRPC结果实现内存缓存,每个tRPC过程都可以选择加入自定义TTL。我认为tRPC的中间件适合这个目的。不幸的是,current tRPC middleware documentation似乎没有涵盖这个特定的场景。
如何在tRPC 10中实现服务器端缓存中间件?
1条答案
按热度按时间ulydmbyx1#
这里有一个关于Github issue的相关讨论,可以很容易地实现这一点。同时,仍然可以通过实现自定义逻辑来实现这一点。
下面的示例使用
node-cache
作为内存缓存方法。它已经在tRPC 10.43.3中测试过。cachedProcedures
中列出的过程被配置为选择进入该高速缓存。个字符
几点意见:
query
类型启用,而不是mutation
或subscription
middlewareMarker
是一个有点笨拙的修复,因为任何中间件返回都必须包含marker
structuredClone
仅在Node 17+中可用,如果这不是一个选项,则需要其他深度克隆方法