node.js内部:如何找出'process.binding('eval')`被定义的位置?

  • 我怎样才能find在node.js的C ++源代码中的JavaScript对象得到定义,我可以通过process.binding('eval') ? – 在这种特殊情况下,我已经发现它在/src/node_script.cc中,但是:我怎么才能知道在哪里可以find那个模块,只要看看/src/目录概览 ? 我不想浏览/src/中的所有文件以查找模块。
  • 我在哪里可以find关于process.binding()的内部深入的信息?

谢谢。

我今天也在找同样的东西。 我不能保证没有更多的东西,但这是我发现的。

src / node_extensions.h包含一个内置模块列表,定义如下:

 ITEM(node_module_name) 

其中module_name是模块的名称(显然)

您可以通过search哪个文件具有以该行开始的行来找出哪个文件定义了该模块

 NODE_MODULE(node_module_name, 

因此,要find定义process.bindings的“evals”模块的文件:

 $ grep "NODE_MODULE(node_evals" src/*.cc src/node_script.cc:NODE_MODULE(node_evals, node::InitEvals)