ddddad
V2EX  ›  Node.js

怎么通过请求上下文异步传递信息

By ddddad at 2024 年 1 月 9 日 · 2519 次点击

目前使用了 express-http-context2 , 但是感觉有 bug ,在后续中无法获取设置的值

const app = express();
app.use(middleware); // use http context

if (!excludeAuth(req)) {
	await verifyJWT(req, resp);
console.log(get(HTTP_CONTEXT.ORG_ID));
}

3 条回复  •  2024-01-22 13:13:16 +08:00
leopod1995
   1
leopod1995  
   2024 年 1 月 9 日
https://www.npmjs.com/package/express-http-context

感觉可能是写法问题? 检查版本
1. Install: npm install --save express-http-context
(Note: For node v4-7, use the legacy version: npm install --save express-http-context@<1.0.0)

2. Make sure you require express-http-context in the first row of your app. Some popular packages use async which breaks CLS.

3. Node 10.0.x - 10.3.x are not supported. V8 version 6.6 introduced a bug that breaks async_hooks during async/await. Node 10.4.x uses V8 v6.7 in which the bug is fixed. See: https://github.com/nodejs/node/issues/20274.
ddddad
   2
ddddad  
OP
   2024 年 1 月 11 日
后面尝试了下,设置值不在 await 方法里可以获取,可能是跟这个上下是基于回调有关系,具体原因还没搞明白

ps:感谢楼上
stabc
   3
stabc  
   2024 年 1 月 22 日
没必要用这个插件啊,直接用 asynclocalstorage 一样简单,还可以自定义 type
© 2026 V2EX · 30ms · 3.9.8.5