При программировании C ++ Node.JS Addon, что эквивалентно require('./someModule')
чтобы модуль мог быть загружен для использования в скомпилированном аддоне?
Я нашел этот метод:
Handle<String> source =
String::New("NameOfLibrary.register(require('./someModule'))");
Handle<Script> script =
Script::Compile(source);
script->Run();
который, если используется в сочетании с что я спросил здесь будет работать хорошо, но мне было интересно, если есть более родной путь.
Вы должны иметь доступ к стандартной функции «требуется модуль» в вашей функции инициализации. Вообще я бы просто позвонил оттуда, так как ленивые звонки require
не очень хорошая идея, так как они синхронны.
static void init (Handle<Object> target, Handle<Object> module) {
HandleScope scope;
Local<Function> require = Local<Function>::Cast(
module->Get(String::NewSymbol("require")));
Local<Value> args[] = {
String::New("./someModule")
};
Local<Value> someModule = require->Call(module, 1, args);
// Do whatever with the module
}NODE_MODULE(module_file_name, init);
Других решений пока нет …