问题标签 [node-addon-api]
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.
c++ - Node.js 原生插件:node_api.h 位于何处?
我正在尝试为 Node.js 创建一个本机插件,当我包含
VS Code 的 Intelli Sense 表示它无法检测到node_api.h
它的位置(它包含在 中napi.h
)。
node-gyp build
效果很好并且可以编译。但我不明白系统中的标头在哪里node-gyp
,从哪里得到它?我需要添加 Intelli Sense 选项的路径,以便更好地理解一般的构建过程。
我正在玩这个代码示例。
javascript - 无法从外部模块获取新值
我有一个日期模块,它返回系统中设置的当前日期:
我在另一个文件中要求它:
问题是当用户从系统手动更改日期并再次调用此方法时,方法调用没有返回新的日期值:
我c
在我的项目中使用节点插件,我要求它是这样的:
但我仍然得到旧的日期值。不确定缺少什么
c++ - 插件:TypeError:addons.function() 不是函数
我对插件等还是很陌生。我正在尝试运行一个简单的 c++ 函数,将“Hello MIKE”打印到节点 js 中。但是,我收到以下错误:
这是我的主要cpp
和我的 index.js
还有一些我注意到与我正在关注的教程不同的东西。这就是我从我的主要 cpp 中获取的函数:exports : { Function: [Function (anonymous)] } 在教程中没有那个匿名部分,那么为什么它在这里将我的读作匿名?
提前致谢
c++ - 如何将节点 v8 字符串转换为 C++ 字符串
我是编写节点 C++ 插件的新手。
我想将参数字符串从节点更改为更改 c++ 字符串,
但出现错误,我尝试了这个问题,
如何将 std::string 转换为 v8 的 Local<string>
它不起作用。
我已经尝试过这些功能,但没有一个工作。
node.js - nodejs插件和wasm的比较
将 C/C++ 或 Rust 代码集成到 Electron App 以执行 CPU 密集型任务、nodejs 插件或 wasm 的更好方法是什么?请在效率、兼容性等方面比较这两种方法。
node.js - 将节点终端/main.js 日志打印到渲染器控制台(开发人员工具)
我有一个电子应用程序,其中使用了 c++ 本机插件。
C++ 代码将日志打印到终端,在开发时我可以在 termianl 中看到它们。
Electron 应用登录 renderer.js 控制台(开发者工具控制台)。
构建应用程序可执行文件后不会发生同样的事情,因为那里没有 termianl ......
所以在构建之后我只能看到 renderer.js 日志并且不能从 main.js 和 c++ 代码访问日志。
ISSUE:
如何将终端日志和 main.js 日志打印到渲染器控制台。
c++ - 使用带有 cmake-js 的 lib2geom 编译脚本以在 N-API node.js 插件中使用
我正在尝试在 Electron 应用程序中使用lib2geom。我能够编写一个脚本,该脚本使用该库来获取两条路径的交集,然后使用https://github.com/nodejs/node-addon-examples中的示例将其用 node-addon-api 包装。我主持了这次尝试:lib2geom-path-boolean-addon。
我在使用 cmake-js 构建脚本时遇到问题(我成功地使用 CMake 构建了一个非插件脚本)。如 CMakeLists.txt 文件中所述,尝试运行 install npm 脚本时出现以下错误:
并在此处采纳建议(现已发表评论)并没有解决问题。
我只是在为这个插件学习 C++ 和 CMake,所以很难知道从哪里开始调试这个问题。任何见解将不胜感激。我希望这可以成为社区的宝贵资源。
c++ - Magick++/NAPI 模块内存泄漏
我正在使用利用 Magick++ 库的 node-addon-api 编写本机模块。该模块采用图像的文件路径以及一些参数并返回缓冲区。我似乎遇到了一个非常糟糕的内存泄漏问题,Massif 报告该问题与创建的缓冲区或 Magick++ 图像有关。这是我的 C++ 代码:
还有一个示例 JS 脚本:
这是脚本的示例输出:
如您所见,每次运行该函数时,驻留集的大小都会显着增加。我使用的任何格式的每个图像都会发生这种情况。我将如何防止代码泄漏?提前致谢。
编辑: 我做了一些更多的挖掘,结果发现由于缓冲区不是通过 JS 创建的,所以它不符合垃圾收集的条件。我现在想知道是否可以创建一个缓冲区,让 V8 收集垃圾并仍然提供相同的数据。
node.js - 使用 Visual Studio 2017 或 2019 编译 node-gyp C++ 插件
使用命令:
我正在使用带有 node.js v12.18.3 node-gyp v7.1.0 的 Windows 10
具有以下变量用户变量:
系统变量:
npm 配置详情(npm config list --json):
我已经安装了 Visual Studio 2017 以及此处提到的所有相关 C++ 构建工具: 如何解决错误 gypgyp ERR!ERR!发现 VSfind VS msvs_version 未从命令行或 npm 配置设置?
但仍然收到此错误:
当我尝试更改上述所有参数以使用安装了所有 VS2015 构建工具的 VS2015 时,它可以正常工作。
如何修复上述错误以使用 Visual Studio 2017 或 2019?
c++ - 在节点 C++ 插件中返回布尔值
在 Node C++ Addon 中,我可以返回这样的字符串:
如何实现相同但设置布尔值而不是字符串?