问题标签 [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++ - 如何通过节点插件导出数组数据
我正在使用节点 0.12.x,我想从 C++ 编写的节点插件返回一些数组数据
这是返回 Number 数据的示例。
javascript - 使用 C++ 生成 SHA512 的 Node.js 插件
我想在 C++ 中创建一个附加组件,它将生成传递给其中函数的字符串的 SHA512。此 C++ 文件还将包含一个将在哈希生成期间使用的密钥。我的要求是我想从 Node.js 调用这个附加组件,并期望从这个库返回哈希。
我对此完全陌生。我已经尝试了 hello world 附加组件的示例示例和一些数字加法,但不知道如何创建自己的函数。我有用于生成哈希的 C++ 文件,但不知道如何将其全部绑定。
我正在粘贴 C++ 代码文件可用的链接:
http://www.zedwood.com/article/cpp-sha512-function
谁能帮我解决这个问题?
c++ - 如何让 v8 函数返回 c++ 对象?
我目前正在尝试更新 Node.js 的 C++ 库包装器。目前它使用 Nan 1.0,我需要将其转换为使用最新版本 Nan 2.0。但是,我遇到了一个有趣的问题。我有这两行:
使用 node-gyp 编译时,我收到错误
如何让 Nan::Get 函数返回一个 c++ 对象?
c++ - 如何更新我的函数以使用新的 v8 FunctionTemplates?
我有一些使用 V8 FunctionTemplates 的代码。它是旧 Node.js 模块的一部分,充当 C++ 库的包装器。
但是,当代码运行时,编译器会给出这些错误。
V8引擎的文档说
但我不确定如何使用它来修复我的功能。有任何想法吗?
c++ - C++ node.js 插件 - Init() 中的参数说明
在创建 c++ node.js 插件时,有人可以解释 Init 的单参数形式和双参数形式之间的区别吗?
c++ - NodeJS 插件 (V8) 和线程
我想确定并了解线程是否可以在v8 functions
. 要理解这一点,请考虑以下示例:此服务器行:
运行这个 v8 函数:
并进一步:
将会通知:
我无法在极端环境(有很多用户)中测试此代码,以查看性能。所以当我调用buffering
并buffering
创建一个thread
时,v8 function
会等待线程的执行(返回到nodejs)?或者,正如我希望的那样,等待过程将julius
完成join()
?
javascript - 如何使用来自 C++ 插件的 node.js 内置模块
我需要使用我的 C++ 插件中内置的模块“crypto”中的 node.js。我试图找到使用内置模块的 C++ 插件的示例,但失败了。我查看了 node_crypto.h/.cc ,与 node.js 加密文档、受保护的构造函数等相比,它具有如此不同的函数签名。 node_crypto.h 包含带有一个参数的 InitCrypto() 声明,但 node_crypto.cc 没有这样的定义功能。只有 InitCrypto 有四个参数。无论如何,我尝试使用带有一个参数的 InitCrypto 并得到“符号查找错误”。
我可以将 require('crypto') 的结果传递给我的插件,然后使用这个对象,但这太不安全了。我们的 JS 代码在客户端的服务器上工作。
现在我认为 C++ 插件使用像 openssl lib 这样的东西而不是内置节点模块'crypto'更简单。
所以我需要一些带有 C++ 插件的工作示例,它使用“加密”模块或链接到一些关于此的文章。
使用来自 C++ 插件的任何内置模块的任何示例都会有所帮助。
c++ - Link Node.js C++ add-on with static library
I have a C++ project that is intended to perform some calculations. The C++ code will sit on a server that as back end to a browser based GUI. Node.js seems to be suitable for this job. I've gone through the tutorials and learnt to build C++ code to be used as a nodejs module.
For the sake of simplicity, I'd like to compile the C++ code as a static library. I could then write a C++ class which references this library which can then be used in the nodejs environment. The point of this is so I don't have to use node-gyp build to build my entire C++ project. This way I can further develop the C++ code without worrying too much about the front end.
To achieve this, I have done the following:
Built a simple C++ library as follows. Building this in Visual Studio 2013 to get the .lib file.
/li>Created the C++ object to be used as a nodejs module like so:
and the cpp file
/li>Create the main cpp file to initialise
/li>The binding.gyp file is defined as:
/li>Build the project using node-gyp configure build
I get the following messages:
I need some assistance to either fix this error and make it work as I envision it or let me know if there's a better way. I'm quite new to C++ and coding in general so I may just be approaching this wrong.
c++ - Native Node.JS module - parsing an int[] from arguments
I am trying to write a native C++ module to include in a Node.js project -- I followed the guide here and have things setup pretty well.
The general idea is that I want to pass an array of integers to my C++ module to be sorted; the module then returns the sorted array.
However, I cannot compile using node-gyp build
because I hit the following error:
error: no viable conversion from 'Local' to 'int *'
It is complaining about this code in my C++:
This all makes conceptual sense to me -- the compiler can't magically cast arg[0]
(presumably of type v8::Local
) to an int*
. Having said that, I cannot seem to find any way to get my argument successfully cast into a C++ integer array.
It should be known that my C++ is rather rusty, and I know next-to-nothing about V8. Can anyone point me in the right direction?
c++ - libuv 线程通信
我有一个 c++ 库,客户端应用程序使用这个库从服务器查询数据。该库创建一个单独的线程与服务器通信,查询结果将作为回调函数中的参数传递。
现在我想把这个c++ lib包装到nodejs本机模块中,因为在这个lib自己的线程中调用了回调函数,为了将查询结果传递给js环境,我相信我必须使用libuv的uv_async_send(uv_async_t* async)方法来传递两个线程之间的数据。(如果我错了,请纠正我)
根据libuv 的文档:
警告:libuv 将合并对 uv_async_send() 的调用,也就是说,并非对它的每次调用都会产生回调的执行。例如:如果在回调之前连续调用了 5 次 uv_async_send(),那么回调只会被调用一次。如果调用回调后再次调用 uv_async_send(),则会再次调用。
这个警告是否意味着 uv_async_send 可能导致数据丢失?我想知道 libuv 是否为这个问题提供了更好的解决方案,或者我应该使用其他一些 thead 库。