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

c++ - 检查传递给节点 C++ 插件的参数是 Infinity 还是 NaN

如何检查直接传递给节点 C++ 插件(不是通过 JS 包装器)的参数是 NaN 还是 +/-Infinity?

我尝试frexp(arg[0]->NumberValue(), &exponent)检查指数是否为 2047(JS 如何表示 NaN 和 Infinity),但显然Local<Value>->NumberValue()掩盖了双精度并更改了 exp 值。

0 投票
2 回答
430 浏览

c++ - 我应该如何在 NAN 1.x 中使用数字代码引发错误?

NAN 1.9中,该NanThrowError(const char *msg, const int errorNumber)方法已被弃用,看起来 NAN 2.0 中不存在等效方法。是否有另一种方法可以使用 NAN 获得相同的功能,或者它完全消失了?

0 投票
1 回答
63 浏览

javascript - 存储 JavaScript 构造函数供以后使用

我正在编写一个由 50% 纯 JavaScript 类和 50% 纯 C++ 类组成的 node.js (0.12) 库。C++ 类中的某些函数需要返回 JavaScript 类的实例。我想我需要将 JavaScript 类的构造函数存储在Persistent<Function>s 中。假设我可以将构造函数作为参数,我该如何存储它们以备后NewInstance()用。

JS

C++

0 投票
1 回答
161 浏览

c++ - Node.js C++ 绑定错误:'(' 标记之前的预期构造函数、析构函数或类型转换

我正在尝试更新 Node.js 模块的 C 绑定。我收到此错误:

源代码在这里

可以通过克隆 repo 并执行npm install.

0 投票
1 回答
1121 浏览

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 的内部字段,但我真的不确定。

0 投票
0 回答
343 浏览

c++ - 是否可以用新版本的 Nan 编写 Maybe 操作?

Nan 2.0,为了与 Node 4.0 兼容,引入了MaybeMaybeLocaltypes,以及几个返回它们的函数。但是,它们中的大多数似乎不接受 Maybe对象,在某些情况下,我想组合这些方法。例如(假设我有一个返回 a 的函数MaybeLocal<String>),我想做return Nan::To<String>(Nan::Get(object, key))而不是

有没有一种合理的方法可以做到这一点,而无需围绕这些函数中的每一个编写我自己的包装器?

0 投票
1 回答
353 浏览

c++ - 如何检查对象是否是 Nan 2 中构造函数的实例?

Nan 1.x 有一个函数NanHasInstance(Persistent<FunctionTemplate>&, Handle<Value>)来检查一个对象是否是一个构造函数的实例。但是,该功能在 nan 2.0 中被删除,并且没有明显的替代品。nan 是否仍以其他方式公开此功能?如果没有,是否有其他方法可以检查它是否与 Node 版本兼容?

0 投票
1 回答
116 浏览

javascript - 从 C++ 中的 JavaScript 函数继承

我有以下 JavaScript 基本函数:

我还有一个像这样的派生 JavaScript 函数:

Dog现在我想创建一个与派生的JavaScript 函数完全相同的 C++ 插件 :

如何在函数模板中获取FunctionTemplatefrom animalFunc/animalModule以便能够从它继承?tpl或者也许我应该以某种方式将animalFunc.prototype分配给tpl.prototype

0 投票
1 回答
532 浏览

c++ - 错误:在 C++ 中创建 node.js 库时,%1 不是有效的 Win32 应用程序

我在 Visual Studio 中构建了节点,然后通过在 Visual Studio 项目中设置适当的路径,成功地在 .node 扩展名中编译了这段代码。

但是当我通过这段代码调用这个模块时,

我收到上述错误。请提出您的建议。

0 投票
1 回答
183 浏览

c++ - 我可以将 Node.js C++ 扩展与 Node 的内部 OpenSSL 实现相链接吗?

我有一个用 C++ 编写的节点扩展,需要链接到 OpenSSL。我还看到 Node 有一个使用 OpenSSL 实现的TLS 模块。我可以在 binding.gyp 文件中将我的扩展链接到 OpenSSL 的节点副本吗?