什么是 npm 包 bindings?
npm 包 bindings 是一个可以帮助 Node.js C++ 插件和 JavaScript 应用程序之间建立桥梁的工具包。bindings 可以让你编写 Node.js 扩展并使其易于使用。
如何安装 npm 包 bindings?
你可以通过以下命令在你的项目中安装 npm 包 bindings:
npm install bindings
如何使用 npm 包 bindings?
添加 bindings 到你的 Node.js 模块
首先,你需要将 bindings 添加到你的 Node.js 模块中:
const bindings = require('bindings'); const myAddon = bindings('myAddon');
这里我们假设你的 Node.js 模块名称为 myAddon。你需要在你的 C++ 插件代码中将其导出为 node.gyp 文件指定的模块名称。例如:
-- -------------------- ---- ------- -------- -------- --------- ---- - ---- ------------ ---------------------------- ----- - -- --- - ---- ------------------ -------- - ------------------------ ---------- -------- - --------------------------------- ----- - -- --------- ----
此处我们将 MyAddon 导出为模块名称。NODE_GYP_MODULE_NAME 是一个宏,该宏解析为当前构建的模块名称。
在 Node.js 中使用 C++ 插件
现在你可以在你的 Node.js 应用程序中使用 MyAddon 插件了:
const addon = require('./build/Release/myAddon'); console.log(addon.myFunction());
这里我们假设你的 MyAddon 插件是使用 node-gyp 编译的,其中构建目录为 build/Release。
在 C++ 中使用 bindings
bindings 可以帮助你轻松地在 C++ 中使用 V8 API。以下示例演示如何在 C++ 中使用 bindings:
-- -------------------- ---- ------- -------- -------- -------- ------------ --------- ---- - ----- ------------ ----- ------------------------- ----- ------------ ----- ---------- ----- ------------------ ----- ----------- ----- ----------- ----- ---------- ----- -------------- ---- ------------------ ---------------------------- ----- - -------- ------- - ------------------ -- ------------------------ - -- ------- -- ------------ ---- -------------- ------ ----- - ---------------------- - - - ----------------------- --------- --- - --- ---------------- ----------------------- --------------------------------------- - ---- - -- ------- -- ----- -------- ---------------- ---- ---- --------- ----- ----- --- ---- - -- ------------ ---------- - - ------- -- -------------- ------- - ----------------------------- --------------- ---- - ----------------------------- ------------- ------------- ------ - -------------------------- ----- ----------------------- ---------------------------------- - - ---- ------------------ -------- ------------- ------- - -------------------------------------- -- ------- ----------- -------- ----------------------- --- - -------------------------------------------- -------------- ------------------------------------------------------------ ----------- ------------------------------------------ -------------------------------------------------- -- --------- ------------------------------ ---------- ------------------- ---------------------------------------- -------------------- ------------------------------------------------------ ----------- ----------------------------------------- -------------------- - -------------------------- ----- - -- --------- ----
我们首先使用 #include "myobject.h"
包含了一个名为 MyObject 的 C++ 类的定义。然后,我们在 CreateObject
函数中包装了这个类,使它
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/39738