有帮助吗?

解决方案

此函数返回内部模块,如需要。这不是公众,所以你不应该依靠它在你的代码中,但如果你想了解如何工作,你可以用它来玩节点的低级对象。

例如,这里的 timer_wrap绑定是注册的。它导出 Timer构造函数。在lib/timers.js中它是导入

其他提示

这是一个基本上熄灭并抓住C ++功能的功能,并使其在JavaScript内部提供。 借用在 zlib

中使用的这个例子

这基本上出现并获取zlib c ++对象,然后它正在使用JavaScript代码中的其余时间。

所以当你使用zlib时,你实际上并没有出去 并抓取C ++库,您正在使用javascript库,为您提供C ++功能。

它使得更容易使用

process.binding将node.js的javascript侧连接到节点.js的c ++侧。 Node.js的C ++侧是实际实现了Node的大量内部工作的位置。所以很多代码最终依赖于最终C ++代码。 node.js正在使用C ++的功率。

这是一个例子:

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 ++端进行。

process.binding("crypto")会将此过程带到src目录的出口商,其中c ++ node.js。在Node.js的这一侧,v8将要转换我们在不同程序中放置的节点,如布尔或函数或对象,并将其转换为C ++等价物。

在JavaScript代码被翻译成C ++之后,Libuv将进行,并将在线池中在C ++侧的外部执行上面的代码执行所有重计算。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top