问题标签 [node.js-napi]
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.
node.js-addon - 将旧插件迁移到 NAPI
我是 Node.js 插件的新手,我不明白 和 之间的nan
区别n-api
。
是否有一种简单的方法可以将旧版本(节点 v.0)的插件迁移到新版本(节点 v.8)?
node.js - 如何从N-api异步调用引用函数,我无法获取“env”!
js代码是:
记住 C++ 中的函数:
当调用本机函数时:
c++ - NodeJS 和 N-API
我正在尝试编译和使用 N-API Node JS c++ 插件。代码编译得很好,但在运行时出现以下错误:
奇怪的是,当我用“普通”C++ 插件代码(没有 N-API)替换 cc 代码时,一切正常。
我正在使用 NodeJS 8.9.2。
有人有线索吗?
TIA,约翰。
c++ - 将 OpenCV C++ 附加组件添加到 node.js 的最基本示例
所以最近我一直在使用 C++ 进入 OpenCV。我已经建立了一些我想导出到 Nodejs 的库和应用程序,但我一生都无法弄清楚。
我试图在下面的这个 repo 中查看他是如何做到的,但有很多东西需要吸收,特别是因为这是我的第一个附加组件。 https://github.com/peterbraden/node-opencv/blob/master/binding.gyp
我不介意它与 NAN 或 N-API 一起使用,我只是希望有一些简单易懂的东西,以了解什么去哪里以及为什么。
这是一个简单的 OpenCV 函数,它只打开一个我试图用作 Node 插件的图像:
node.js - nodejs napi 模块没有自行注册
当我尝试测试 nodejs N-API 模块时,对我有一个错误:
我的 addon.c 文件是:
我的 binding.gyp 文件是:
当我使用 require('./build/Release/addon') 调用插件模块时,错误信息是:
有人可以帮助我吗?坦克
c++ - 在 Node.js C++ N-API 中迭代 Napi::Object 属性(键)
我在使用 c++ n-api api 时遇到问题,我已经查看了此处的文档,但我没有看到一种方法来迭代 a 的键Napi::Object
。我一定遗漏了一些东西,因为这在 JavaScript 中是可能的,所以在 C++ API 中一定是可能的。
如何列出或迭代 Napi::Object 中的键(属性)。
javascript - 从 C++ 回调函数发出 Node.js 事件
在 Node.js 应用程序中,我需要在更改默认音频设备时收到通知。该程序将在 Windows 7 上使用。
目前,我正在尝试通过为节点制作一个 C++ 插件来做到这一点,该插件通过 Windows Core Audio API 中的 IMMNotificationClient::OnDefaultDeviceChanged 方法发出一个可由节点事件发射器接收的事件。
下面是一个 Windows Core Audio API 回调方法的示例:
这是我希望在上述回调函数中拥有的一些理想的 C++ 风格的伪代码:
我不确定如何实现这一点,所以这是我的问题:如何通过 C++ 回调函数向 Node.js 应用程序发出事件?
我对其他解决方案持开放态度,只要它们可以在 Node 上本地运行(IE 通过附加组件),并且可以在 Windows 7 上运行,这意味着对 nircmd 等应用程序的外部调用不可用。
编辑
这是一些实验性代码,可以尝试帮助描述我在做什么:
音频设备发射器.h:
AudioDeviceEmitter.cpp
绑定.cpp:
此代码会引发错误并且无法编译,希望在这里更全面地解释我的问题。
c++ - 使用 Node.js N-API 调用 C 函数显示不是预期的输出
我是 Node.js N-API 的新手。让我直奔问题。
我正在尝试Camellia_Ekeygen
使用 N-API 调用 C 函数,但该函数的输出m_uKttWork
与直接使用 C++ 代码调用相同的函数不同。
这是参考的代码和输出。
使用 N-API
模块.cpp
模块.js
输出
Camellia_Ekeygen
直接调用
测试.cpp
输出
在这种情况下我应该看什么?这几天我一直在寻找线索,但到目前为止仍然不知道。任何故障排除方向或参考表示赞赏。
node.js - Node.js N-API 插件 - 如何字符串化/解析 JSON?
我正在使用N-API(C 接口,不要与围绕 N-API 的node-addon-api C++ 包装器混淆)为 Node.js 编写一个插件,它从外部源接收 JSON 格式的数据,需要在其对象形式上执行一个 JS 回调函数。但是,在将 JSON 格式的数据传递给 JS 回调之前,我无法在插件中将其解析为适当的对象(即,由 JSON.parse 产生),并且似乎只能在其文本中传递它形式。
到目前为止,我发现的唯一示例涉及直接使用C++ NAN和 V8 API。我错过了什么吗?我是否应该对 JSON.parse 进行另一个 napi_call_function 调用,捕获其返回值,然后将其传递?(如果是这样,我如何从我的插件中获取 JSON.parse 回调信息?)是否有我没有找到的更简单的 API?
出于许多原因,我更愿意继续使用 C 而不是 C++,尽管我认为这是可以商量的。
foo.js
myaddon.c
javascript - 使用 NodeJS N-API 计算浮点值时出现问题
大家好,
来自网络开发世界。我目前正在尝试做一些 C 代码,它将 RGB 值转换为 NodeJS 可以通过 N-API 使用的 XYZ 值。我遇到的问题是关于浮动计算。以下是我的问题的解释:
根据下面的 C 代码,此代码尝试将 RGB 值转换为 XYZ 值。
我正在使用这个 JS 片段来调用我的库
如果一切正常,输出应该如下所示
但是我的输出是这个
如您所见,输出完全错误。然而,这个错误的输出只发生在我的本地机器(OSX)上,并且只有当我尝试使用 JS 片段进行转换时。
实际上,当我尝试直接通过 Xcode 使用下面的这段代码运行转换时,输出是正确的
此外,当我尝试通过运行 OSX 的 travis 调用 JS 代码时,以及通过 Docker 在 Ubuntu 上调用 JS 代码时,JS 代码也会输出正确的值。
它是否与硬件或我编译库的方式更相关?
先感谢您。