我在fs.js
的顶部看到有一个process.binding('fs')
。
https://github.com/nodejs/node/blob/master/lib/fs.js#L10:
const binding = process.binding('fs');
然后,它被用作:
binding.open(pathModule._makeLong(path),
stringToFlags(flag),
0o666,
req);
(在https://github.com/nodejs/node/blob/master/lib/fs.js#L303-L306)
我的问题是:
process.binding('fs')
是什么意思? fs
(我们已经在fs.js
)?binding.open
的源代码?是Javascript代码还是c / c ++代码?答案 0 :(得分:11)
process.binding()
是节点用来获取对各种核心C ++绑定的引用的内部API。'fs'
中的process.binding('fs')
是对fs
模块中 C ++绑定(节点源代码树中的src/node_file.cc
)的引用。 / LI>
process.binding()
引用了C ++绑定,因此在这种情况下binding.open()
导出here并定义here。