javascript - 什么是 `process.binding(' fs' )` in ` fs.js`?

标签 javascript node.js fs

<分区>

我看到在 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++ 代码?

最佳答案

  1. process.binding() 是 node 用来获取对各种核心 C++ 绑定(bind)的引用的内部 API。
  2. process.binding('fs') 中的
  3. 'fs' 是对 C++ 绑定(bind) 的引用( Node 中的 src/node_file.cc fs 模块的源代码树)。
  4. 如前所述,process.binding() 引用 C++ 绑定(bind),因此在本例中 binding.open() 被导出 here并定义了 here .

关于javascript - 什么是 `process.binding(' fs' )` in ` fs.js`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37916949/

相关文章:

javascript - SignalR js客户端错误的服务器端口

node.js - 在nodejs中 Sequelize findAll排序顺序

angularjs - Node项目的应用程序结构

javascript - 如何检查 Node.js 事件的 'fulfilled' 状态?

javascript - 如何在 Node.js 中打开 Windows-1255 编码文件?

webpack - Vue.js 网页包 : how to get the list of files in a directory?

javascript - 检查数组是否包含字符串,但忽略该字符串中的其余字母

javascript - 阵列处理逻辑校正

JavaScript WebCrypto importKey 错误 : AES key data must be 128 or 256 bits

javascript - 如何让 Javascript 的 fs.writeFileSync 将变量名替换为打印的文件名