Tag: v8

C ++从'char *'无效转换为'const unsigned char *'

我在NodeJS中编写我的项目,但我不得不使用C共享库。 正因为如此,我不得不使用Node.js插件。 调用C ++代码完美地工作,我也能够加载自定义库,并成功地调用两个C函数:一个给我的库的版本号,另一个方法基于JS提供的数据生成一个密钥。 我遇到的问题与生成的密钥有关。 我必须使用encrypt和decrypt方法。 这是我用来存储密钥的variables: unsigned char generated_key[256]; 这是生成密钥的function: extern "C" { #ifdef WIN32 VE_EXPORT int CALLBACK generate_key #else int generate_key #endif (char *variable_msg, /*!< variable seed */ char *shared_seed, /*!< shared seed */ unsigned char *generated_key, /*!< generated key */ unsigned int key_size); /*!< key size */ } 这是一个使用键的function: extern "C" { […]

如何在“node-gyp rebuild”中声明“'NewInstance'已被弃用”警告? v8中NewInstance的替代select是什么?

你好V8程序员和节点gyp'ers。 我正在运行OS X 10.12.6 ,使用npm v3.10.10 , nan v2.6.2 , gcc作为XCode的一部分使用此版本输出运行的Node v6.11.1 : $ > gcc –version Configured with: –prefix=/Applications/Xcode.app/Contents/Developer/usr –with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 8.1.0 (clang-802.0.42) Target: x86_64-apple-darwin16.7.0 Thread model: posix 请帮我理解如何正确使用NewInstance并消除在我的自定义软件包安装的npm install或node-gyp rebuild过程中的警告? > node-gyp rebuild CXX(target) Release/obj.target/cellcrypt/src/cellcrypt.o CC(target) Release/obj.target/cellcrypt/src/decode.o CXX(target) Release/obj.target/cellcrypt/src/DecryptionWrapper.o ../src/DecryptionWrapper.cpp:55:44: warning: 'NewInstance' is deprecated [-Wdeprecated-declarations] v8::Local<v8::Object> instance = cons->NewInstance(); ^ /Users/sjcbsolo/.node-gyp/6.11.1/include/node/v8.h:3276:52: […]

Node.js:如何在V8引擎中启用non strict或ECMASCRIPT3?

我相信V8底层Node.js默认支持严格模式或ES5。 我们可以在V8引擎中启用非严格或ECMASCRIPT 3吗? Chrome(V8)中几乎有100%的ES5function可用,请参阅兼容性表 。 但是一些开发人员(包括我)仍然对ES3感到满意,我们可以有这个select吗?

V8垃圾收集可用内存吗?

我正在阅读V8文档 ,它说垃圾回收器“回收”内存。 我的问题是“回收”在自己的堆中使用的内存还是释放它? 提前致谢。

为Javascript数组sorting注入对象而不是函数

我正在尝试对javascipt中的对象进行sorting。 sorting顺序本身取决于两个因素:对象的属性和单个外部variables的值。 我知道我可以使用array.sort(sortFunction)来注入自定义函数,但我需要使用一个不同的函数,取决于外部variables(在sorting过程中是固定的)。 我把sorting减less到了最小的testing用例,它显示了问题并试图注入“降/升”参数,尽pipe真正的问题要复杂得多。 我知道我可以扭转()的结果,但这不是一个问题。 代码如下: var ar = [ 10, 3, 5, 17 ]; var ns = new nsort(); ar.sort(ns.sort); console.log(ar); function nsort() { this.desc = true; this.sort = function(a,b) { console.log(this.desc); if (this.desc) return ba; else return ab; } } 这里是输出(使用Node.js) undefined undefined undefined undefined [ 3, 5, 10, 17 ] 它看起来像数组sorting代码在sorting时提取父对象之外的function。 任何想法为什么会发生这种情况,以什么方式来做到这一点? […]

V8 javascript:chrome vs node.js – “this”上下文的区别

看看下面的代码: var pocket = { cash: 1000, showCash: function() { return this.cash; } }; var thomas = { name: "Thomas", work: function() { console.log('I don\'t want to, but I have to… work!'); }, cash: 5000 }; var bird = { fly: function() { console.log('I\'m flying!'); } }; console.log(pocket.showCash()); thomas.showCash = pocket.showCash; console.log(thomas.showCash()); bird.showCash = pocket.showCash; […]

node.js中的未定义符号Linux下的C ++插件,为什么?

我是在node.js中编写C ++插件的新手。 这是我的模块: $ npm install simpleini 它基于miniini-0.9 。 而我的源码是在src/simpleIni.cc 。 我在Windows,OS X,Linux(Debian)下试过这个模块。 它在Windows和OS X下运行良好。 但是当我在Linux上运行时,看起来如下: node: symbol lookup err: …/simpleIni.node: undefined symbol: _ZNK10INISection10ReadStringEPKcRS1_ 为什么?

Node.js GYP附加组件“exception”

我正在试图制作一个C ++库到一个node.js加载项。 问题是在构build时出现如下错误: 错误:名称空间“std”中没有名为“runtime_error”的成员抛出std :: runtime_error 有什么我可以取代runtime_error与摆脱这个错误? 我试图禁用它: 'cflags!': [ '-fno-exceptions' ], 'cflags_cc!': [ '-fno-exceptions' ], 但没有运气 我发现这个讨论 。 而且似乎我有和底层人一样的问题,但是他没有得到任何答案。

节点缓冲区为字符数组

我有一个本地的NodeJS插件,它接受一个Buffer实例作为参数之一。 我可以用下面的代码将一个char数组转换成一个Buffer ,但是也可以用另一种方式来查找。 static v8::Local<v8::Object> create_buffer(char *data, unsigned long length) { node::Buffer *slow_buffer = node::Buffer::New(length); memcpy(node::Buffer::Data(slow_buffer), data, length); v8::Handle<v8::Value> constructor_arguments[3] = { slow_buffer->handle_, v8::Integer::New(length), v8::Integer::New(0) }; v8::Local<v8::Object> global_object = v8::Context::GetCurrent()->Global(); v8::Local<v8::Function> buffer_constructor = v8::Local<v8::Function>::Cast(global_object->Get(v8::String::New("Buffer"))); return buffer_constructor->NewInstance(3, constructor_arguments); }

将Node.js缓冲区传递给C ++插件

test.js buf = new Buffer(100); for (var i = 0; i < 100; i++) buf[i] = i addon.myFync(buf); addon.cpp Handle<Value> set(const Arguments& args) { char *buf = SOMETHING(args[0]); return Undefined(); } 如何获得指向C ++函数内缓冲区的数据的指针? 我应该写什么来代替SOMETHING(args[0]) ? 我在我的编辑器中打开了node_buffer.h,但我无法弄清楚。 节点版本= v0.10.29