问题标签 [n-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.

0 投票
1 回答
460 浏览

c++ - Mac 中 Electron 中的本机 C++ 插件出现问题

我正在编写代码以从电子加载 c++ 动态库。在 Mac 中尝试时出现以下错误:

dyld:找不到符号:__ZN15FcDrive2Library13InitDrive2LibEv 引用自:/Users/nikhell/Documents/Codelathe/Workspace/cl-fc-client/electron-drive-client/build/Release/electronToCppBridge.node 预期在:平面命名空间

我的 binding.gyp 文件如下所示:

它在Windows中工作。在 Mac 中,我也尝试过重新安装节点模块和电子重建。它们都不适合我。除了本机 .node 模块外,dylib 已成功复制。不知道为什么会出现此链接错误

0 投票
1 回答
301 浏览

node.js - 预构建本机插件依赖项(用于节点和电子)

我正在尝试在节点应用程序和电子应用程序中使用本机插件( Node Sentinel File Watcher -aka NSFW-)。

对(节点和电子)使用相同的本机插件不起作用,所以我必须使用电子重建(然后它将与电子一起使用)或npm rebuild(然后它将适用于节点)重建插件,但不适用于两者同时。

我试图避免为切换而重建,我更喜欢根据平台进行动态需求(我将使用一个特定版本的电子)。

是否可以同时为两个(或更多)平台安装依赖项?

我发现了一些有趣的软件包,例如https://www.npmjs.com/package/prebuild,但看起来您需要修改本机插件(在本例中为 NSFW)。

我打算将它用作一个私有 NPM 包,该包将分发并用于 node 和一个特定版本的电子。

0 投票
2 回答
1501 浏览

javascript - 从 C++ Node.js 插件调用现有 JavaScript 函数 - 从另一个线程

也许我只是没有搜索正确的术语,但我被困住了..

我需要从 C++ 调用 JavaScript 函数,这与使用普通 C API可以完成的非常相似。

注意:我不想回调传递给 C++ 代码,但我已经知道要调用的函数的名称!

例如,我在 JavaScript 中有一个这样的函数:

我想从 C++ 调用它(顺便说一句,来自与主线程不同的线程):

我可以这样做吗?我该怎么做?我应该一直在寻找什么?!

0 投票
1 回答
295 浏览

javascript - 我们如何访问 Node.js 应用程序之外的内存?

例如,假设在 Node.js 之外还有一些其他程序想要与 Node.js 应用程序协调以使其直接访问某些内存。

在 JavaScript 方面,我想我们需要一个 ArrayBuffer。

我们是否需要编写一个 Node.js C++ 插件模块来做到这一点?(如果是这样,我想使用 C++,但如果我们可以使用其他语言,比如 Rust,那就太酷了。)

关于在哪里寻找这样的开始的任何指导?

0 投票
1 回答
25 浏览

node.js - 错误:“对象”没有命名类型 - 尝试学习 NodeJS N-API

很难找到足够精确的答案,基本上我的编译器(GCC std=c++11)确实识别出“对象”类型。

是的,我对 ++ 还很陌生

尝试更改命令行选项,尝试谷歌搜索以获得确切的解决方案。

如果有人发现任何其他潜在问题,请告诉我。我发现 NodeJS 文档在某些领域有点模棱两可。

我已经包含了我的代码和命令行输出。

命令行片段:

编码:

0 投票
1 回答
706 浏览

node.js - NodeJS,N-API、nan、node-gyp 和 cmake-js 的区别

我正在尝试学习如何在 NodeJS 中使用 C 和/或 C++ 库。

但它有点混淆了许多不同的工具和方法,以及它们之间的关系。

NodeJS N-API和“ nan ”有什么区别, node-gyp和/或cmake-js的作用是什么。

0 投票
1 回答
624 浏览

c - 如何使用 node.js N-API 函数检查 napi_number 类型的 napi_value 是整数还是小数,

如何使用 node.js 原生 N-API 函数检查给定的napi_number类型的napi_value整数还是小数(带有小数值的数字)。看起来 N-API 中没有 isInt() 或 isDouble() 等效函数(我们也不想使用 V8 函数调用)。让我们考虑一个场景,我们通过传递一个 JavaScript 对象作为参数从 JavaScript调用本机插件函数f1() ,如代码段所示。

本机函数f1()希望通过调用最佳拟合值提取 N-API 函数来提取与键n1n2关联的值。例如,要提取n1的值,最好使用napi_get_value_int*之一,同样对于n2double是更好的选择。

不幸的是,我找不到任何 N-API 函数来验证napi_number 属性的导数。你有没有遇到过类似的情况,如果有,你是怎么解决这个问题的?

https://nodejs.org/api/n-api.html

0 投票
1 回答
329 浏览

c++ - 如何将带有缓冲区的对象从插件发送到节点线程安全?

0 投票
0 回答
151 浏览

c++ - 从 node.js 本机插件工作池线程创建 napi_value

是否可以从 node.js(本机)工作线程创建napi_value并与主线程共享该值。

例如:

然后从“Execute()”函数(将由工作池线程执行)构造一个napi_value 。 例如:

0 投票
1 回答
1322 浏览

c++ - 无法运行简单的 N-API hello world 示例

我试图在 Node.js v12.13.0 堆栈中运行以下帖子,但无法呈现它 https://medium.com/@tarkus/how-to-call-cc-code-from-node-js-86a773033892

如果我以普通用户身份运行,这就是我得到的

它似乎只是给了我们 make fail 错误,我们无法弄清楚。

任何建议或帮助将不胜感激。