node.js - 在中间件中保留要缓存的环回 4 应用程序中的请求的服务器对象
问题描述
我有一个内置于 loopback4 的应用程序,这是一个用于构建 REST Api 的 nodejs 框架。在该应用程序中,我想缓存各种 jwt 令牌颁发者的公共证书,以免每次 api 调用都请求这些证书。我的问题是序列,每个中间件都会在每个请求中获得一个新实例。虽然我可以使用 redis 之类的东西,但我想知道是否可以在没有额外服务的情况下实现类似的东西。我看不出有任何可能从应用程序中提交一个持续时间超过单个请求的对象,有什么想法吗?
我认为这同样适用于例如执行内存缓存的快速中间件
解决方案
我通过创建在 application.ts 中创建到应用程序的缓存服务解决了这个问题:
import {CacheService} from './caching/cacheservice.service';
import {CacheServiceBindings} from './caching/keys';
[..]
this.add(createBindingFromClass(CacheService, {key: CacheServiceBindings.CACHE}));
并将其注入到 sequence.ts 构造函数中:
@inject(CacheServiceBindings.CACHE) protected cache: CacheService,
这样我就可以使用这个对象来保持整个应用程序的生命周期。
推荐阅读
- pyspark - How to load all records that were already published from Kafka?
- c# - 用于输入 url 以插入 url 的 xpath
- javascript - 冲突:多个块将资产发射到相同的文件名 ./plugin.min.css
- unix - 如何使用 AWK 将文件名中的数字附加到 csv 的前面
- jenkins - Jenkins:即使构建失败,管道也总是返回“SUCCESS”
- java - Collections.sort() 不使用 compareTo Override 进行排序
- c# - 初学者:多项选择测验
- excel - 使用 VBA 保存时修复格式错误
- django - Django papertrail 日志记录神秘地失败了
- angular - 空数组时的停止间隔