请求上下文
在上一章节中,我们学会了把 jwt 解析出的 user 挂在到 ctx。
但是我们在非中间件中使用的时候,是不太方便获取的。
像 Java 用 ThreadLocal,在 Node 中可以用 AsyncLocalStorage 来做“每个请求线程的私有上下文”。
创建上下文实例
封装一个中间件
再封装一个中间件,并在项目中使用。
最后我们将上一章节userMount 中间件也做一点改动
使用
比如我们在 service 层使用
这样咱们就实现的是一种“登录后挂载用户信息到全局上下文”,这样在 非请求链(比如 utils、service、job、定时任务等) 中也能拿到当前登录用户 —— 类似 Java 中的 ApplicationContext + ThreadLocal 的组合。