首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Nodejs:`process.binding`是什么意思?

Nodejs:`process.binding`是什么意思?
EN

Stack Overflow用户
提问于 2014-06-05 00:33:21
回答 3查看 15.3K关注 0票数 81

我在node.js source code on github上搜索的时候见过很多次process.binding('...')

谁能给我解释一下这个函数是做什么的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-05 00:39:47

此函数返回内部模块,如require。它不是公共的,所以你不应该在你的代码中依赖它,但是如果你想了解它是如何工作的,你可以用它来处理节点的底层对象。

例如,注册here timer_wrap绑定。It exports Timer构造函数。在lib/timers.js中是imported

票数 71
EN

Stack Overflow用户

发布于 2017-10-24 19:01:13

它本质上是一种获取C++特性并使其在javascript中可用的特性。以zlib中使用的process.binding('zlib')为例

这实际上是获取zlib对象,然后在其余时间在C++代码中使用。

因此,当您使用zlib时,您实际上并不是在获取C++库,而是在使用为您包装C++特性的Javascript库。

它使它更易于使用

票数 19
EN

Stack Overflow用户

发布于 2019-06-10 15:48:22

process.binding将Node.js的Javascript端连接到Node.js的C++端。node.js的C++端是该节点所做的所有事情的大量内部工作实际实现的地方。所以你的很多代码最终都依赖于C++代码。Node.js正在使用C++的强大功能。

下面是一个示例:

代码语言:javascript
复制
const crypto=require(“crypto”)
const start=Date.now()
crypto.pbkdf2(“a”, “b”, 100000,512,sha512,()=>{
console.log(“1”:Date.now()-start)
})

Crypto是Node.js中用于散列和保存密码的内置模块。这就是我们在node.js中实现它的方式,但实际的哈希过程发生在Node.js的C++端。

当node.js运行该函数时,实际上在该函数内部,它将所有参数传递给PBKDF2()函数,该函数是c++代码。此函数执行所有计算并返回结果。这就是PBKDF如何导入到node.js的javascript端。

代码语言:javascript
复制
const {PBKDF2}=process.binding(“crypto”)

这就是node.js的javascript端连接到node.js的c++端的方式。在node.js的c++端,V8将把node.js值转换成它们的c++等效值。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24042861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档