问题标签 [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 回答
574 浏览

c++ - 这与 ObjectWrap::Unwrap 的持有人

该类v8::FunctionCallbackInfo区分ThisHolder。我知道thisJavaScript 中有什么,并假设它This反映了该设置。但是我对什么是什么只有一个模糊的概念Holder,而且对于何时应该使用Holder而不是This.

特别是,在编写基于 nan 的 node.js 扩展并解包ObjectWrap时,我应该通过哪些?

当前node::ObjectWrap文档有示例 usingHolder当前Nan::ObjectWrap文档使用This,因此“仅按照文档中的示例”无助于回答这个问题。

0 投票
1 回答
643 浏览

c++ - 使用 nodejs javascript 或 c++ 插件覆盖本机 nodejs 函数

我正在尝试覆盖 nodejs 的本机功能并使其成为全球性的。(例如:控制台/要求)

这是我的方法:


M1使用全局

myConsole.js

index.js

测试.js

这失败了。


M2直接赋值

myConsole.js

index.js

测试.js

这也失败了。


有谁知道如何覆盖它?谢谢。

另外:我没有使用 c++ 节点模块的经验,是否可以覆盖本机代码?

v8 参考

0 投票
4 回答
1994 浏览

javascript - C++ node.js 模块。cout 不工作?

嗨,我是 C++ 中的菜鸟,试图修改现有的本机节点模块。

我正在尝试在模块内添加 couts 以打印我认为对我有用的信息。

以前的方法有效,但从未显示 cout。在 node-gyp 构建期间是否丢失/显示?我做错了什么吗?有没有办法实现它?

0 投票
2 回答
11213 浏览

c++ - 如何将 v8::String 转换为 const char *

我在dll中有这个功能

在我的节点插件中我有这个功能

当我尝试编译时,node-gyp 返回错误:“无法将参数 1 从 'v8::Local' 转换为 'const char *'

如何将 v8::String 转换为 const char *?

0 投票
6 回答
34454 浏览

node.js - 错误:找不到模块“nan”

我正在开发本机 Node.js 插件并关注nan 文档

我将 nan 包含在 binding.gyp 中,例如: "include_dirs" : [ "<!(node -e \"require('nan')\")" ]

nan 也在 npm 依赖项中。

但是当我在另一个节点模块中安装包时 node-gyp 失败并出现错误

0 投票
1 回答
1637 浏览

c++ - nodejs原生插件多线程

我在一段时间内为 nodejs 开发了本机模块,有些情况对我来说不是很清楚。不幸的是,v8 文档不是很好。

所以对我来说有一个有趣的领域。首先可以std::thread在主本地模块线程中使用吗?文档说我可以使用 libuv 函数并运行异步操作,但是在这个库中我们无法访问 v8 对象。但是,如果我想在主线程中同步我的计算,例如,在另一个线程中修改一些 JS 对象属性,结果会怎样?

我尝试了以下代码:

它可以按我的预期工作,但是如果我们无法访问另一个线程中的 v8 对象,为什么?

我还尝试将结果更改为 v8::Number 类型并通过当前隔离和新隔离在 myFunction 中创建它,但出现段错误。

0 投票
1 回答
84 浏览

c++ - 将数字元素传递给对象

我正在开发一个 NodeJS 插件项目,我真的不明白如何将长值传递给我的对象。

这是我的代码:

提前致谢

0 投票
1 回答
678 浏览

javascript - 在 Node.js 插件中使用 std::thread

想象一下,我使用 Node.js 插件中的同步函数:

但是在方法代码中我有:

所以我有2个插件的同步调用,但在这个插件中使用了两个线程。一个函数将启动线程,另一个函数将加入它们。问题是:random_void_functionrandom_void_function_2并行运行吗?由于my_functionandfinal_function是同步的,random_void_functionandrandom_void_function_2会阻塞事件循环吗?据我所知,他们没有阻止。

0 投票
1 回答
874 浏览

javascript - 从 C++ 填充 Node v8 Float32Array

我查看了文档:

我正在尝试使用 a 填充 v8 浮点数组thrust::host_vectofr<float>,其中dataset[i].vector = thrust::host_vector<float>

使用数组,似乎是四舍五入为整数:

使用类型化数组,Float32Array

编译正常,但执行时崩溃:

从 C++ 分配然后填充 v8 Float32Array 以便它可以在 JavaScript 中使用的正确方法是什么?

我也明白 Node.JS/v8 没有附带float?

0 投票
1 回答
1956 浏览

c++ - 如何使用新版 Node Nan Persistent

使用以下等效代码的新版本Nan:以下代码适用于 0.12.*,但不适用于 4.3.0 及更高版本。