尝试检索时,通过nan传递数组将返回undefined 我现在正在使用他们的C++/V8系统编写NoDJS的本地插件,我试图从JavaScript编写C++到C++的数组,然后再检索它。每当我试图从数组中检索一个值并返回它时,它就会返回一个空数组——因为我最近跳入C++中,我不确定这是不是我的误解指针/ C++基础或NoDEJS C++交互。p>

尝试检索时,通过nan传递数组将返回undefined 我现在正在使用他们的C++/V8系统编写NoDJS的本地插件,我试图从JavaScript编写C++到C++的数组,然后再检索它。每当我试图从数组中检索一个值并返回它时,它就会返回一个空数组——因为我最近跳入C++中,我不确定这是不是我的误解指针/ C++基础或NoDEJS C++交互。p>,c++,node.js,v8,node.js-addon,node.js-nan,C++,Node.js,V8,Node.js Addon,Node.js Nan,我的档案如下: This is a thing. This is a thing. [ 1, 1, 3 ] Console { log: [Function: bound ], info: [Function: bound ], warn: [Function: bound ], error: [Function: bound ], dir: [Function: bound ], time: [Function: bound ], timeEnd: [Functio

我的档案如下:

This is a thing.
This is a thing.
[ 1, 1, 3 ]
Console {
  log: [Function: bound ],
  info: [Function: bound ],
  warn: [Function: bound ],
  error: [Function: bound ],
  dir: [Function: bound ],
  time: [Function: bound ],
  timeEnd: [Function: bound ],
  trace: [Function: bound trace],
  assert: [Function: bound ],
  Console: [Function: Console] }
[]
函数.cc 出于测试目的,代码绝对不是干的,它基于通过github提供的nan样板代码的非精简版本

在重读我自己的代码时,我可以肯定地说我的方法命名是坏的,因此PassArr应该设置一个数组,getArr应该返回通过“PassArr”传递的数组。SetArray是我留下的一次黑客尝试

重申一下,我试图实现的功能是:

Javascript Array -> C++ variable
C++ variable -> Javascript Array
但是当前的功能并不能持久化我的变量。运行index.js的结果如下:

This is a thing.
This is a thing.
[ 1, 1, 3 ]
Console {
  log: [Function: bound ],
  info: [Function: bound ],
  warn: [Function: bound ],
  error: [Function: bound ],
  dir: [Function: bound ],
  time: [Function: bound ],
  timeEnd: [Function: bound ],
  trace: [Function: bound trace],
  assert: [Function: bound ],
  Console: [Function: Console] }
[]

迟做总比不做好。。。这里有两个问题:

第一个是
MyObject::value
是一个本地句柄。它应该是一个持久句柄,您需要在
~MyObject()
中重置它,否则它将泄漏


第二个问题是
MyObject::passArray
中的数组
arr
长度为0,您应该使用正确的长度来构造它。

@simon-p-r感谢您的编辑-完全忽略了tagNo担心@N.J.DawsonI我不再处理此项目,也不再有可用的代码库,但我感谢您的回答。我将您标记为正确答案,但我无法为稍后偶然看到此帖子的任何人验证这一点。谢谢。我想可能是这样的,但也认为答案可能对其他人有帮助。你们能详细说明我如何在MyObject类中创建一个持久数组吗?我有一个类似的问题,我不知道如何创建数组。
Javascript Array -> C++ variable
C++ variable -> Javascript Array
This is a thing.
This is a thing.
[ 1, 1, 3 ]
Console {
  log: [Function: bound ],
  info: [Function: bound ],
  warn: [Function: bound ],
  error: [Function: bound ],
  dir: [Function: bound ],
  time: [Function: bound ],
  timeEnd: [Function: bound ],
  trace: [Function: bound trace],
  assert: [Function: bound ],
  Console: [Function: Console] }
[]