ddddad
V2EX  ›  Node.js

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

  •  
  •   ddddad · Jan 9, 2024 · 2098 views
    This topic created in 855 days ago, the information mentioned may be changed or developed.

    目前使用了 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 replies    2024-01-22 13:13:16 +08:00
    leopod1995
        1
    leopod1995  
       Jan 9, 2024
    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
       Jan 11, 2024
    后面尝试了下,设置值不在 await 方法里可以获取,可能是跟这个上下是基于回调有关系,具体原因还没搞明白

    ps:感谢楼上
    stabc
        3
    stabc  
       Jan 22, 2024
    没必要用这个插件啊,直接用 asynclocalstorage 一样简单,还可以自定义 type
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1142 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 58ms · UTC 18:12 · PVG 02:12 · LAX 11:12 · JFK 14:12
    ♥ Do have faith in what you're doing.