问题标签 [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 投票
0 回答
145 浏览

c++ - 如何为 NanMakeCallback->Call 设置自定义上下文

NAN 1.7.0targetNanCallbackCall. 此参数允许您设置回调的上下文,即this

但是,无论我做什么this,我的 JavaScript 回调中的值始终是默认Global上下文。我希望在我的 JavaScript 回调中foo提供以下内容。this

0 投票
2 回答
4421 浏览

c++ - 将 v8 对象转换为自定义 C++ 对象

我目前正在开发一个nodejs用 C++ 编写的模块,我一直在寻找一种将 a 转换v8::Objectcv::Mat对象的方法opencv,目前没有任何运气。

我看到nan 库可以帮助转换对象,但我找不到方法,我什至不知道在我的情况下是否可以转换它们。

v8 juice项目可以满足我的期望,但由于它已被放弃,我只是不知道该怎么做。

这是我正在尝试做的一个片段:

StackOverflow 上所有关于此的帖子都已过时(旧版本或不再工作的工具......)

所以我的问题是:如何将我在函数中收到的参数转换为cv::Mat对象?我想要的任何类型?

任何帮助将不胜感激,谢谢!

0 投票
1 回答
856 浏览

javascript - 在插件中使用 nan 接收并返回 Float32Array

我正在尝试使用nan来计算附加组件中浮点数组的某些内容,然后将其作为Float32Array.

但是,虽然 args 具有IsNumber()NumberValue()功能,但它只有一个IsFloat32Array()功能而没有Float32Array()

我试过看那些:1、2教程,但没有找到合适的例子。

0 投票
0 回答
396 浏览

javascript - 如何将指针字符从 v8 返回到 javascript

我想将一个 char 指针从 v8 返回到 javascript,但它不起作用。在 js 中,结果的长度不好。例如,在 v8 中 outlength 是 43529bytes,在 js 中我只有 4 个字节。使用 return String::New((char *)img); 是否正确?

Javascript:

V8

0 投票
1 回答
832 浏览

javascript - 如何在本机 Node.js 模块中将事件处理程序附加到进程的出口?

我正在为原生 Node.js 模块实现正确的内存管理。我遇到了这个问题中描述的问题:
node.js native addon - destructor of Wrapped class doesn't run

建议的解决方案是将本机对象的析构函数绑定到process.on('exit'),但答案不包含如何在本机模块中执行此操作。

我也简要地看了一下 libuv 文档,但它们也没有包含任何在这方面有用的东西。

注意:我对获取process对象并不是特别感兴趣,但我尝试过这种方式:

那么问题是我在尝试删除我的对象时收到此消息:

我也尝试使用std::atexit并得到相同的断言错误。

到目前为止,我能做的最好的事情就是ObjectWrap在 an 中收集流浪实例std::set并清理被包裹的对象,但是由于上述错误,我无法自己清理包裹器。

那么,我怎样才能正确地做到这一点?

0 投票
2 回答
85 浏览

c++ - 将参数传递给另一个函数

在这里,我为 Handler 分配了一个参数:

有用

但我想分配两个参数!这就是为什么我试图这样做:

但后来我得到这个错误:

我错了什么?如何分配两个参数?谢谢

0 投票
1 回答
394 浏览

javascript - Node.js >= 0.12.* C++ 插件实例化返回一个回调

只要回调参数是字符串,我就可以正常使用以下功能:

在节点中实现:

这将输出以下实现节点:

但是,现在我想添加一个回调。例如:

这会导致 C++ 编译错误:

这基本上意味着 V8::Call 只需要一个值数组。但是如果我想返回函数呢?当前插件文档中没有示例。

0 投票
1 回答
1739 浏览

c++ - Node.js 和 C/C++ 集成:如何正确实现回调?

我正在尝试实现与 node.js 集成的 C++ 扩展。这个扩展会在内部调用一些阻塞调用,所以它需要为 node.js 世界提供一个非阻塞接口。

https://nodejs.org/api/addons.html中所述,有两种方法可以实现非阻塞回调:

a) 通过对 JavaScript 函数使用简单的回调。所以我的扩展必须生成一个线程并立即返回,并让该线程调用阻塞代码,然后在返回时调用 JavaScript 回调。这似乎实现起来相对简单。

b)通过使用 libuv 库,如果我理解正确,将事件发布到 node.js 事件循环。我没有详细阅读 libuv 文档,但这似乎实现起来相当复杂。

我的偏好当然是 a),但我不知道这意味着什么。如果回调是从不同的线程调用的,是否有任何问题,从而使 node.js 标准方法成为非阻塞 IO?或者是否需要使用 libuv 来正确处理我的代码及其阻塞调用的线程?

非常感谢您的帮助。

0 投票
1 回答
4243 浏览

c++ - node.js 插件 - 如何将字符串参数传递给(nan)C++

我的 node.js 代码是这样做的:

我的 C++ 代码(uning nan)想要接收第一个字符串参数:

...但我得到的是垃圾。

关于我做错了什么的任何线索?塞巴斯蒂安。

0 投票
1 回答
93 浏览

c++ - NanAsyncWorker 参数如何成为“未声明的标识符”

我有这段代码(来自https://github.com/nodejs/nan/tree/master/examples/async_pi_estimate

...编译器说

怎么会这样 ?