问题标签 [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++ - 检查传递给节点 C++ 插件的参数是 Infinity 还是 NaN
如何检查直接传递给节点 C++ 插件(不是通过 JS 包装器)的参数是 NaN 还是 +/-Infinity?
我尝试frexp(arg[0]->NumberValue(), &exponent)
检查指数是否为 2047(JS 如何表示 NaN 和 Infinity),但显然Local<Value>->NumberValue()
掩盖了双精度并更改了 exp 值。
c++ - 我应该如何在 NAN 1.x 中使用数字代码引发错误?
在NAN 1.9中,该NanThrowError(const char *msg, const int errorNumber)
方法已被弃用,看起来 NAN 2.0 中不存在等效方法。是否有另一种方法可以使用 NAN 获得相同的功能,或者它完全消失了?
javascript - 存储 JavaScript 构造函数供以后使用
我正在编写一个由 50% 纯 JavaScript 类和 50% 纯 C++ 类组成的 node.js (0.12) 库。C++ 类中的某些函数需要返回 JavaScript 类的实例。我想我需要将 JavaScript 类的构造函数存储在Persistent<Function>
s 中。假设我可以将构造函数作为参数,我该如何存储它们以备后NewInstance()
用。
JS
C++
c++ - 为 Node.js 插件在 void * 中检索和存储 V8 对象
我正在尝试将从 JavaScript 传递到 Node.js 插件的对象存储在void *
. 我似乎无法编译它;使用 node-gyp 构建会产生error: no matching function for call to 'Cast'
.
我正在尝试做的长版本是编写一个运行 Csound 的 Node.js 插件。从鸟瞰的角度来看,Csound 使用 C 函数工作,该函数将指向不透明 Csound 结构的指针作为(通常)第一个参数。这个结构包含一个void *
“<code>hostData”,由托管 Csound 的程序设置的任意数据。Csound 所做的一些事情,比如发布消息,是用回调修改的——在这种情况下是函数指针。我需要一个地方来存储每个 Csound 实例的回调,所以我试图让某人hostData
从 JavaScript 中设置一个对象,但我还想将 Csound 实例的回调设置为该对象的隐藏属性hostData
。
我认为代码需要看起来像
我猜我需要仔细看看 V8 的内部字段,但我真的不确定。
c++ - 是否可以用新版本的 Nan 编写 Maybe 操作?
Nan 2.0,为了与 Node 4.0 兼容,引入了Maybe
和MaybeLocal
types,以及几个返回它们的函数。但是,它们中的大多数似乎不接受 Maybe
对象,在某些情况下,我想组合这些方法。例如(假设我有一个返回 a 的函数MaybeLocal<String>
),我想做return Nan::To<String>(Nan::Get(object, key))
而不是
有没有一种合理的方法可以做到这一点,而无需围绕这些函数中的每一个编写我自己的包装器?
c++ - 如何检查对象是否是 Nan 2 中构造函数的实例?
Nan 1.x 有一个函数NanHasInstance(Persistent<FunctionTemplate>&, Handle<Value>)
来检查一个对象是否是一个构造函数的实例。但是,该功能在 nan 2.0 中被删除,并且没有明显的替代品。nan 是否仍以其他方式公开此功能?如果没有,是否有其他方法可以检查它是否与 Node 版本兼容?
javascript - 从 C++ 中的 JavaScript 函数继承
我有以下 JavaScript 基本函数:
我还有一个像这样的派生 JavaScript 函数:
Dog
现在我想创建一个与派生的JavaScript 函数完全相同的 C++ 插件
:
如何在函数模板中获取FunctionTemplate
from animalFunc
/animalModule
以便能够从它继承?tpl
或者也许我应该以某种方式将animalFunc.prototype分配给tpl.prototype?
c++ - 错误:在 C++ 中创建 node.js 库时,%1 不是有效的 Win32 应用程序
我在 Visual Studio 中构建了节点,然后通过在 Visual Studio 项目中设置适当的路径,成功地在 .node 扩展名中编译了这段代码。
但是当我通过这段代码调用这个模块时,
我收到上述错误。请提出您的建议。
c++ - 我可以将 Node.js C++ 扩展与 Node 的内部 OpenSSL 实现相链接吗?
我有一个用 C++ 编写的节点扩展,需要链接到 OpenSSL。我还看到 Node 有一个使用 OpenSSL 实现的TLS 模块。我可以在 binding.gyp 文件中将我的扩展链接到 OpenSSL 的节点副本吗?