Search code examples
c++node.jsv8

Pass Node.js Buffer to C++ addon


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();
}

How to get the pointer to a data of the buffer inside the C++ function?

What should I write in place of SOMETHING(args[0])?

I have node_buffer.h opened in my editor, but I cannot figure out.

Node version = v0.10.29


Solution

  • You can do:

    char* buf = node::Buffer::Data(args[0]);
    

    to directly access the bytes of a Buffer.