问题标签 [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.
c++ - 如何为 NanMakeCallback->Call 设置自定义上下文
NAN 1.7.0target
为NanCallbackCall
. 此参数允许您设置回调的上下文,即this
。
但是,无论我做什么this
,我的 JavaScript 回调中的值始终是默认Global
上下文。我希望在我的 JavaScript 回调中foo
提供以下内容。this
javascript - 如何将指针字符从 v8 返回到 javascript
我想将一个 char 指针从 v8 返回到 javascript,但它不起作用。在 js 中,结果的长度不好。例如,在 v8 中 outlength 是 43529bytes,在 js 中我只有 4 个字节。使用 return String::New((char *)img); 是否正确?
Javascript:
V8
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
并清理被包裹的对象,但是由于上述错误,我无法自己清理包裹器。
那么,我怎样才能正确地做到这一点?
c++ - 将参数传递给另一个函数
在这里,我为 Handler 分配了一个参数:
有用
但我想分配两个参数!这就是为什么我试图这样做:
但后来我得到这个错误:
我错了什么?如何分配两个参数?谢谢
javascript - Node.js >= 0.12.* C++ 插件实例化返回一个回调
只要回调参数是字符串,我就可以正常使用以下功能:
在节点中实现:
这将输出以下实现节点:
但是,现在我想添加一个回调。例如:
这会导致 C++ 编译错误:
这基本上意味着 V8::Call 只需要一个值数组。但是如果我想返回函数呢?当前插件文档中没有示例。
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 来正确处理我的代码及其阻塞调用的线程?
非常感谢您的帮助。
c++ - node.js 插件 - 如何将字符串参数传递给(nan)C++
我的 node.js 代码是这样做的:
我的 C++ 代码(uning nan)想要接收第一个字符串参数:
...但我得到的是垃圾。
关于我做错了什么的任何线索?塞巴斯蒂安。