问题标签 [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.
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 已成功复制。不知道为什么会出现此链接错误
node.js - 预构建本机插件依赖项(用于节点和电子)
我正在尝试在节点应用程序和电子应用程序中使用本机插件( Node Sentinel File Watcher -aka NSFW-)。
对(节点和电子)使用相同的本机插件不起作用,所以我必须使用电子重建(然后它将与电子一起使用)或npm rebuild
(然后它将适用于节点)重建插件,但不适用于两者同时。
我试图避免为切换而重建,我更喜欢根据平台进行动态需求(我将使用一个特定版本的电子)。
是否可以同时为两个(或更多)平台安装依赖项?
我发现了一些有趣的软件包,例如https://www.npmjs.com/package/prebuild,但看起来您需要修改本机插件(在本例中为 NSFW)。
我打算将它用作一个私有 NPM 包,该包将分发并用于 node 和一个特定版本的电子。
javascript - 从 C++ Node.js 插件调用现有 JavaScript 函数 - 从另一个线程
也许我只是没有搜索正确的术语,但我被困住了..
我需要从 C++ 调用 JavaScript 函数,这与使用普通 C API可以完成的非常相似。
注意:我不想将回调传递给 C++ 代码,但我已经知道要调用的函数的名称!
例如,我在 JavaScript 中有一个这样的函数:
我想从 C++ 调用它(顺便说一句,来自与主线程不同的线程):
我可以这样做吗?我该怎么做?我应该一直在寻找什么?!
javascript - 我们如何访问 Node.js 应用程序之外的内存?
例如,假设在 Node.js 之外还有一些其他程序想要与 Node.js 应用程序协调以使其直接访问某些内存。
在 JavaScript 方面,我想我们需要一个 ArrayBuffer。
我们是否需要编写一个 Node.js C++ 插件模块来做到这一点?(如果是这样,我想使用 C++,但如果我们可以使用其他语言,比如 Rust,那就太酷了。)
关于在哪里寻找这样的开始的任何指导?
node.js - 错误:“对象”没有命名类型 - 尝试学习 NodeJS N-API
很难找到足够精确的答案,基本上我的编译器(GCC std=c++11)
确实识别出“对象”类型。
是的,我对 ++ 还很陌生
尝试更改命令行选项,尝试谷歌搜索以获得确切的解决方案。
如果有人发现任何其他潜在问题,请告诉我。我发现 NodeJS 文档在某些领域有点模棱两可。
我已经包含了我的代码和命令行输出。
命令行片段:
编码:
node.js - NodeJS,N-API、nan、node-gyp 和 cmake-js 的区别
我正在尝试学习如何在 NodeJS 中使用 C 和/或 C++ 库。
但它有点混淆了许多不同的工具和方法,以及它们之间的关系。
NodeJS N-API和“ nan ”有什么区别, node-gyp和/或cmake-js的作用是什么。
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 函数来提取与键n1和n2关联的值。例如,要提取n1的值,最好使用napi_get_value_int*之一,同样对于n2,double是更好的选择。
不幸的是,我找不到任何 N-API 函数来验证napi_number 属性的导数。你有没有遇到过类似的情况,如果有,你是怎么解决这个问题的?
c++ - 从 node.js 本机插件工作池线程创建 napi_value
是否可以从 node.js(本机)工作线程创建napi_value并与主线程共享该值。
例如:
然后从“Execute()”函数(将由工作池线程执行)构造一个napi_value 。
例如:
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 错误,我们无法弄清楚。
任何建议或帮助将不胜感激。