All Downloads are FREE. Search and download functionalities are using the official Maven repository.

node_modules.nan.doc.node_misc.md Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
## Miscellaneous Node Helpers

 - Nan::MakeCallback()
 - NAN_MODULE_INIT()
 - Nan::Export()



### Nan::MakeCallback()

Wrappers around `node::MakeCallback()` providing a consistent API across all supported versions of Node.

Use `MakeCallback()` rather than using `v8::Function#Call()` directly in order to properly process internal Node functionality including domains, async hooks, the microtask queue, and other debugging functionality.

Signatures:

```c++
v8::Local Nan::MakeCallback(v8::Local target,
                                       v8::Local func,
                                       int argc,
                                       v8::Local* argv);
v8::Local Nan::MakeCallback(v8::Local target,
                                       v8::Local symbol,
                                       int argc,
                                       v8::Local* argv);
v8::Local Nan::MakeCallback(v8::Local target,
                                       const char* method,
                                       int argc,
                                       v8::Local* argv);
```



### NAN_MODULE_INIT()

Used to define the entry point function to a Node add-on. Creates a function with a given `name` that receives a `target` object representing the equivalent of the JavaScript `exports` object.

See example below.


### Nan::Export()

A simple helper to register a `v8::FunctionTemplate` from a JavaScript-accessible method (see [Methods](./methods.md)) as a property on an object. Can be used in a way similar to assigning properties to `module.exports` in JavaScript.

Signature:

```c++
void Export(v8::Local target, const char *name, Nan::FunctionCallback f)
```

Also available as the shortcut `NAN_EXPORT` macro.

Example:

```c++
NAN_METHOD(Foo) {
  ...
}

NAN_MODULE_INIT(Init) {
  NAN_EXPORT(target, Foo);
}
```




© 2015 - 2025 Weber Informatics LLC | Privacy Policy