Articles of node.js addon

最简单的方法(单行)从v8函数获取默认参数?

自从我使用C ++以来,已经有很长的一段时间了,甚至更长的时间,因为我把自己的头围绕在硬的types上。 我只是寻找一个工作class轮从v8获得参数,或者当一个参数没有提供时的默认值。 v8::String::Utf8Value arg0(args[0]); v8::String::Utf8Value arg1(args[1]); v8::String::Utf8Value arg2(args[2]); const char *username = (args.Length() > 0) ? *arg0 : ""; const char *password = (args.Length() > 1) ? *arg1 : ""; const char *service = (args.Length() > 2) ? *arg2 : "login"; 输出: FUNC(); // {用户名:“”,密码:“”,服务:“login”} FUNC( '1'); // {用户名:“1”,密码:“”,服务:“login”} func('1','2'); // {用户名:“1”,密码:“2”,服务:“login”} func('a','b','c'); // […]

如何使用C ++插件中的模块中构build的node.js

我需要使用我的C ++插件模块“crypto”中构build的node.js。 我试图find使用内置模块的C ++插件的例子,但失败了。 我查看了node_crypto.h / .cc,它与node.jsencryption文档,受保护的构造函数等有着不同的函数签名。node_crypto.h包含一个参数的InitCrypto()声明,但是node_crypto.cc没有定义这样的function。 只有InitCrypto有四个参数。 无论如何,我试着用一个参数使用InitCrypto,并得到“符号查找错误”。 我可以将require('crypto')的结果传递给我的插件,然后使用这个对象,但这是不安全的。 我们的JS代码在客户端的服务器上工作。 现在我认为C ++插件使用像openssl lib这样的smth,而不是内置在节点模块“crypto”中更简单。 所以我需要一些使用'crypto'模块的C ++插件的工作例子,或者链接到一些关于这个的文章。 任何使用C ++插件中的内置模块的例子都是有帮助的。

自定义node.js插件可以被创build但不能包含

我正在编写一个由C ++与C程序混合的自定义node.js插件。 addon.cc由类似的东西组成 #define BUILDING_NODE_EXTENSION #include <node.h> #include <node_buffer.h> using namespace v8; using namespace node; /* other logic and function… */ Handle<Value> RunCallback(const Arguments& args) { HandleScope scope; Local<Value> buffer1 = args[0]; size_t size = Buffer::Length(buffer1->ToObject()); char* bufferdata = Buffer::Data(buffer1->ToObject()); /* some logic written in C style … */ Local<Function> cb = Local<Function>::Cast(args[1]); const unsigned […]

node-ffi与节点扩展以访问现有的C ++function

我有一些现有的C ++代码在独立的C ++应用程序中进行数字处理。 我现在想在新的node.js应用程序中使用该代码。 研究如何从node.js访问C ++代码,有两个选项: 编写一个node.js扩展 使用node-ffi 节点ffi似乎是一个很好的select来访问现有的库 ,但我正确的想法,如果我使用node-ffi我将不得不写一个C封装,使我的C ++可访问? (这是我可以通过Visual Studio在Windows上运行的简单testing用例的唯一方法)。 对于我的情况,我的源代码已经在C ++中,而不是C,在上面两个选项之间进行select时需要考虑什么?