Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 连接到共享库中的cls不会';行不通_Javascript_Node.js_Rollupjs_Thread Local Storage_Async Hooks - Fatal编程技术网

Javascript 连接到共享库中的cls不会';行不通

Javascript 连接到共享库中的cls不会';行不通,javascript,node.js,rollupjs,thread-local-storage,async-hooks,Javascript,Node.js,Rollupjs,Thread Local Storage,Async Hooks,我正在node.js项目(monorepo)中进行请求跟踪,发现了一个名为“cls hooked”的东西,它使用异步钩子。所以我简单地将cls钩住的功能包装到适配器中,我想将其放入我在每个微服务中使用的共享库中。问题是在启动此类服务时,然后: node[35521]: ../src/async_wrap.cc:307:void node::SetupHooks(const FunctionCallbackInfo<v8::Value> &): Assertion `env-&

我正在node.js项目(monorepo)中进行请求跟踪,发现了一个名为“cls hooked”的东西,它使用异步钩子。所以我简单地将cls钩住的功能包装到适配器中,我想将其放入我在每个微服务中使用的共享库中。问题是在启动此类服务时,然后:

node[35521]: ../src/async_wrap.cc:307:void node::SetupHooks(const FunctionCallbackInfo<v8::Value> &): Assertion `env->async_hooks_init_function().IsEmpty()' failed.
 1: 0x100b9f32f node::Abort() (.cold.1) [/usr/local/opt/node@12/bin/node]
 2: 0x100080fc5 node::FatalError(char const*, char const*) [/usr/local/opt/node@12/bin/node]
 3: 0x100080e5a node::AppendExceptionLine(node::Environment*, v8::Local<v8::Value>, v8::Local<v8::Message>, node::ErrorHandlingMode) [/usr/local/opt/node@12/bin/node]
 4: 0x100013952 node::SetupHooks(v8::FunctionCallbackInfo<v8::Value> const&) [/usr/local/opt/node@12/bin/node]
 5: 0x1001d1496 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) [/usr/local/opt/node@12/bin/node]
 6: 0x1001d0b3a v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/usr/local/opt/node@12/bin/node]
 7: 0x1001d0370 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/usr/local/opt/node@12/bin/node]
 8: 0x100749039 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit [/usr/local/opt/node@12/bin/node]
node[35521]:../src/async\u wrap.cc:307:void node::SetupHooks(const FunctionCallbackInfo&):断言`env->async\u hooks\u init\u function()。IsEmpty()'失败。
1:0x100b9f32f节点::中止()(.cold.1)[/usr/local/opt/node@12/bin/节点]
2:0x100080fc5节点::FatalError(字符常量*,字符常量*)[/usr/local/opt/node@12/bin/节点]
3:0x100080e5a节点::AppendExceptionOnline(节点::环境*,v8::本地,v8::本地,节点::ErrorHandlingMode)[/usr/Local/opt/node@12/bin/节点]
4:0x100013952节点::设置挂钩(v8::FunctionCallbackInfo常量&)[/usr/local/opt/node@12/bin/节点]
5:0x1001d1496 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo)[/usr/local/opt/node@12/bin/节点]
6:0x1001d0b3a v8::internal::Maybhandle v8::internal::(匿名命名空间)::HandleApiCallHelper(v8::internal::Isolate*,v8::internal::Handle,v8::internal::Handle,v8::internal::Handle,v8::internal::BuiltinArguments)[/usr/local opt/node@12/bin/节点]
7:0x1001d0370 v8::internal::Builtin_Impl_HandleapCall(v8::internal::BuiltinaGuments,v8::internal::Isolate*)[/usr/local/opt/node@12/bin/节点]
8:0x100749039内置文件返回1\u dontsavfpregs\u ArgvOnStack\u内置文件连接[/usr/local/opt/node@12/bin/节点]

当我把适配器放在每个服务的代码中时,它就像一个符咒,但我不想在每个服务中重复这样的代码。有人能告诉我这个错误与异步挂钩有关吗?甚至可以使用异步钩子功能,或者从节点模块加载的共享库中使用cls钩子功能本身吗?

遇到了同样的障碍。你找到解决办法了吗?或者另一种选择?最后,我将其作为外部依赖项添加到共享库中,我们使用汇总作为绑定器,您可以通过在汇总配置中添加
external:[…内置,'cls hooked']
来实现它。你是否考虑过使用AcyCyLoalStultCype模块(这似乎更好)代替:一些文章:击中相同的路障。你找到解决办法了吗?或者另一种选择?最后,我将其作为外部依赖项添加到共享库中,我们使用汇总作为绑定器,您可以通过在汇总配置中添加
external:[…内置,'cls hooked']
来实现它。你是否考虑过使用AcyCyLoalStultCype模块(它似乎表现更好):一些文章: