如何在节点源代码中找到 process.binding('..') 中使用的源文件?

How to find a source file used in process.binding('..') in node source code?

我想查看 nodeJS 源代码中 process.binding() 语句中提到的文件的源代码,在 Whosebug 上看到过类似的问题,但大多数都是针对 fs 等特定情况的答案。

我想要解释,据此我应该能够找到 process.bindings() 中提到的任何文件。

由于这个问题在这里已经存在了很长时间,所以我决定再试一次以找到答案,并在网上找到了一个非常好的演示文稿。

Process.bindings presentation

总而言之,process.bindings() 将 javascript 对象与 C++ 对象绑定,后者公开要从 javascript 执行的 C++ 函数,本质上它创建了一个 javascript 包装 C++ 函数以使其在 NodeJS 中可用。

要查找哪个 C++ 函数绑定到哪个 javascript 函数,您可以在此处 NodeJs source tree 深入研究 NodeJS 源代码树。名称很容易与核心模块名称映射并查找签名 env->SetMethod(target, "<modulename>", <C++ function name>);

示例:env->SetMethod(target, "stat", Stat);