PS: Пожалуйста, обновите узел 6.2.1. Команда обновления узла NPM Install -GN; n stable.node.js Extension -это библиотека динамической ссылки, записанная в C/C ++ и загруженная через функцию Node.js reft (). Это похоже на использование обычного модуля Node.js. В основном он обеспечивает интерфейсы между библиотеками узла и C/C ++.
Таким образом, если метод или функция реализованы через расширение узлов, он становится довольно сложным, включающим знание нескольких модулей и интерфейсов:
• V8: javascript.v8, который реализует реализацию через библиотеку C ++, предоставляет механизм создания объекта, функцию обратного вызова и т. Д. Большинство документов V8API находятся в файле заголовка V8.H. Нажмите на мой онлайн -документ V8
• Libuv: библиотека для цикла событий, которая реализует Node.js Worker Threads и асинхронное поведение. Он также выступает в качестве кроссплатформенной абстрактной библиотеки, которая может просто подсчитать доступ ко всем основным системам операционной системы. Libuv также предоставляет абстрактную нить, подобную Pthreads, которую можно использовать для более сложных асинхронных. Node.js 'C/C ++ Extension должен выходить за рамки стандартного цикла событий. Автор плагина поощряет размышления о том, как избежать блокировки цикла событий ввода-вывода и полной работы с интенсивной задачей с помощью операций, не блокирующей систем Libuv, рабочих потоков и пользовательских потоков.
• Встроенная библиотека Node.js: сама Node.js использует большое количество API расширения C/C ++. Наиболее важный класс для узел расширения C/C ++: ObjectWrap
• Многочисленные библиотеки статических ссылок Node.js, такие как OpenSSL: другие библиотеки openssl: Node.js находятся в каталоге DEPS под деревом исходных каталогов. Для получения подробной информации, пожалуйста, см. Собственные зависимости Node.js для получения дополнительной информации. Нажмите на мой официальный пример библиотеки расширения Node.js, который может стать отправной точкой для вас, чтобы написать библиотеку расширения C/C ++ для Node.js. Только классы V8 и OpenSSL часто используются в расширениях узла C/C ++.
Узел C/C ++ Extension First Bomb - Последний пример Hello World
Этот пример применимо к номеру версии node.js v5.0 или выше.
// hello.jsconst addon = require ('./ build/release/addon'); console.log (addon.hello ()); // 'world'// hello.cc#include <node.h>#include <v8.h>namespace demo {using v8::FunctionCallbackInfo;using v8::Isolate;using v8::Local;using v8::Object;using v8::String;using v8::Value;void Method(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = args.getisolate ();; args.getReturnValue (). set (string :: newFromutf8 (isolate, "world"));} void init (local <object> exports) {node_set_method (экспорт, "hello", method);} node_module (addon, init)} // namespace demo // dinting. [{"target_name": "addon", "источники": ["hello.cc"]}]}Команда узла-гипа
Кода -копия выглядит следующим образом:
Узел-гип настройка сборка
Выше приведено соответствующее знание перевода node.js addons (расширение C/C ++), введенное вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!