I'd like to pass an array from javascript to C++, however I don't know how to convert the v8 array to a C++ array. Any help is appreciated. Thanks.
-
You generally DON'T. A C++ app runs in the OS process space; a NodeJS runs in its own virtual space (inside of the "node" process). Q: How are you calling C++ from NodeJS? As an "add on", using require()?paulsm4– paulsm42021-04-04 20:06:48 +00:00Commented Apr 4, 2021 at 20:06
-
Can you provide a reproducible code? It'll help others understand how your code's working and provide better answersuser14709104– user147091042021-04-04 20:08:11 +00:00Commented Apr 4, 2021 at 20:08
-
Yes, I am talking about those.user13608507– user136085072021-04-05 21:32:50 +00:00Commented Apr 5, 2021 at 21:32
1 Answer
The simplest way is to convert it to JSON which is a platform and language-agnostic string format and pass that to your C++ where it can then parse the JSON string into its own data format.
If your C++ code is running it its now process, you will then have to find a way to deliver the string to the other process. If the C++ code is in a child process, you can send it over stdio. If not, then you will need some other interprocess communication mechanism for sending the string to app running the C++ code.
There is a mechanism for creating a nodejs add-on in C++ where you can exchange data between the two and the C++ code runs in the nodejs process, but it is not for the faint of heart as its fairly involved and difficult to learn. The doc for addons is here. It will, in general, be a lot, lot simpler to send a JSON string between two processes.