繁体   English   中英

什么是node.js绑定?

[英]What are node.js bindings?

我是node.js的新手,我似乎无法找到任何关于node.js绑定的定义。 我已经看到这个术语用于幻灯片和nodejs会谈,但从未明确解释过。 任何人都可以帮我澄清一下这个概念吗? 我附上了我所指的内容。 在此输入图像描述

不是理解node.js绑定是什么,而是首先理解“绑定”是什么更有用。

假设您正在编写一个web.apps(JavaScript)后端的Web应用程序:

  1. 接收客户的请求,
  2. 对数据库进行查询,
  3. 最后对查询结果进行排序
  4. 将结果返回给客户端。

现在通常你会自己编写所有代码。 但是,您知道有一个很好的排序库可以处理第3步(即排序查询结果)。 唯一的问题是库是用C / C ++等系统编程语言编写的,而代码是用JavaScript编写的。 通常,您不能在代码中使用该库,因为它们使用不同的编程语言,但是使用绑定,您可以。

绑定基本上是“绑定”两种不同编程语言的库,以便用一种语言编写的代码可以用在另一个库中编写的代码中。 存在绑定时,您不必再次编写所有代码,因为它们使用不同的语言。 绑定的另一个动机是您可以从不同编程语言的优势中受益。 例如,C / C ++比JavaScript快得多。 为了性能目的,在C / C ++中编写一些代码可能是有益的。

现在让我们来看看你附上的图片。 据谷歌官方网站称,V8引擎是“ 用C ++编写的 ”。 libuv添加了一个提供异步I / O操作的抽象层,用C语言编写。然而,Node.js的核心功能,如网络,数据库查询,文件系统I / O,都在库中提供(或模块,如果你更喜欢)用JavaScript编写。 另外,您的代码也是用JavaScript编写的。 现在,为了使用不同编程语言编写的这些技术相互通信,您必须使用绑定将它们“绑定”在一起。 这些绑定是node.js绑定。

我最近写了一篇文章解释了Node.js内部代码库的架构,在那里我解释了绑定如何适应Node.js!

经过进一步的研究,我发现了这篇文章。 我希望这可以帮助任何人:

http://pravinchavan.wordpress.com/2013/11/08/c-binding-with-node-js/

Node.js绑定是可以在Node.js代码中使用的一系列方法,这些代码实际上只是在幕后运行C ++代码。

fs.readFile()  

此方法不是javascript的一部分。 它作为node.js运行时的一部分提供给v8。 所以javascript不知道如何从磁盘读取文件,但C ++确实如此。 因此,当我们使用javascript代码和node.js从磁盘读取文件时,它只是将所有这些推迟到C ++函数,该函数实际上可以从磁盘读取文件并获得结果。

在此输入图像描述

Javascript在浏览器中也有绑定。 例如;

document.querySelector()

不是javascript代码。 它由chrome V8引擎实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM