问题标签 [node.js-addon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1134 浏览

c++ - 从 NodeJS 到 C++ 我应该如何传递参数并获得结果

我正在尝试将我的旧 C++ 项目与 NodeJS 集成。我已经看过 hello word 插件教程,用于将简单的文件 c++ 文件构建到 NodeJS 中。我正在寻找一些高级示例,如果有人致力于构建从 NodeJS 到 C++ 的桥梁。我想将数据从我的 nodeJS 程序(hello.js)传递到 C++ 程序(hello.cc)

感谢帮助

0 投票
1 回答
259 浏览

javascript - 如何访问本地在 node.js 插件中

我为 node.js 编写了一个插件,我想在其中使用传递给我的 c++ 代码的参数。

如何访问实际的 c 样式缓冲区?有没有比 v5.6.0 文档更好的文档或教程?

0 投票
1 回答
825 浏览

c++ - 将缓冲区从 c++ 模块返回给 node.js

我正在为 node.js 编写 c++ 模块并遇到以下问题。代码:

如果取消注释注释代码,则函数将为每次调用返回相同的结果

结果是完美的,但由于节点中的最大整数大小不正确,因此我们应该使用缓冲区。但是还有另一个问题。第一次调用返回不正确且不同的缓冲区。但它们应该是一样的

我想错误在于我对 c++ 到节点机制的理解。但我是这个范围的初学者,所以我需要你的帮助来制作正确的模块。

0 投票
2 回答
862 浏览

c++ - Nodejs 中 v8 数组创建的性能

我正在尝试将 JS 算法移植到 C++,看看我是否可以提高性能,但我在填充 v8 数组时面临着巨大的性能瓶颈。

这是一个仅复制填充数组的片段。我创建了一个包含 800k 个项目的数组,每个项目都是一个包含 17 个数字的数组。这个算法在我的机器上执行需要 3 秒,这是相当大的。

有没有办法加快速度?

0 投票
1 回答
70 浏览

c++ - 从 nodejs 模块初始化函数报告失败

我有一个 nodejs C++ 模块,我想了解如何报告初始化错误。所以这个的样板是:

Initialize如果它没有返回类型并且我不允许抛出,我该如何报告内部错误extern "C"?我应该调用一些特定的回调吗?

此外,从暴露给 nodejs 的回调方法报告错误的最佳实践是什么?返回空对象是常见的做法,还是我可以扔在那里,这会在 javascript 端显示为异常?

0 投票
2 回答
4136 浏览

c++ - Node JS - 模块没有自行注册

我浏览了不同的帖子,其中大多数建议重建/重新安装/更新 npm,我尝试过,但没有帮助。

我正在尝试使用 C++ 的 node.js 示例,下面是文件详细信息
TestNode.cpp


绑定.gyp

现在是执行&它抛出错误说模块不是自注册的。

版本信息

请您指导我解决此错误。

0 投票
1 回答
4468 浏览

c++ - NodeJS 插件从 NAN AsyncWorker::Execute 内部调用 Javascript 回调

我想从我的异步插件函数中调用 nodejs 回调。我已经看到了同步示例(此处),并且我正在使用一个出色的异步示例(此处)作为起始基础。

但是,当我尝试执行一个给 c++ AsyncWorker 子类的回调时,我得到一个分段错误。

这是我的代码:

我的问题:

  1. 我不应该使用 Nan 的 AsyncWorker 而是自己动手吗?
  2. 如何设置 Execute 函数以调用 Javascript?
0 投票
0 回答
130 浏览

javascript - v8:如何在 FunctionTemplate 中包含脚本

我这样做是为了拥有一个使用 nodejs 附加组件的 MongoDB nodejs 驱动程序包装器。我想创建一个包装器来消除异步性质。可悲的是,上述驱动程序没有“同步”选项。

我尝试构建 mongodb c 驱动程序和 mongodb c++ 驱动程序,但没有运气

这是我的问题:如何将字符串 javascript 函数体解析为 v8 函数?

我有这个代码

这会产生一个错误:Illegal return statement 我断定我必须把这个函数。

我不知道如何将函数体解析为模板。:'(

PS:我是新手,所以请让newb这个词友好。哈哈。哈哈

0 投票
0 回答
496 浏览

javascript - Nodejs插件静态库链接:缺少符号

自从我做了一些 C++ 开发以来已经有几年了。我正在尝试静态链接 boost 正则表达式库,运行时出现以下错误

节点插件.js

(我正在使用 node-addon-examples/2_function_arguments 示例)

我在 macOS 上

绑定.gyp:

插件.cc

插件.js

注意:动态链接库也会导致问题。

问题:我需要使用相同的编译器编译 nodejs 和 boost 吗?

0 投票
0 回答
36 浏览

c++ - 访问 ArrayBufferView 的数据

在 Node.JS 插件中,我想处理来自Buffer( ArrayBufferView) 的数据,我在 C++ 中有这个实验代码:

现在我用像这样的脚本运行这段代码

并且数据缓冲区并不指向包含foobar我输入的内存区域,而是一些随机的其他区域,长度为 8192 字节。如何获取正确的数据?