PS: Bitte aktualisieren Sie den Knoten 6.2.1 zuerst. Der Befehl npm install -n; n stable.node.js -Erweiterung ist eine dynamische Linkbibliothek in C/C ++ und über die Funktion "Node.js Require Require (). Es ist wie die Verwendung eines gewöhnlichen Node.js -Moduls. Es bietet hauptsächlich Schnittstellen zwischen Knoten- und C/C ++ - Bibliotheken.
Wenn eine Methode oder Funktion durch Knotenerweiterung implementiert wird, wird sie auf diese Weise recht komplex, was Kenntnisse über mehrere Module und Schnittstellen beinhaltet:
• V8: Ein JavaScript.v8, das die Implementierung über die C ++ - Bibliothek implementiert, bietet einen Mechanismus für Objekterstellung, eine Rückruffunktion usw. Die meisten V8API -Dokumente befinden sich in der Header -Datei v8.h. Klicken Sie auf mein V8 Online -Dokument
• Libuv: Eine Bibliothek für Ereignisschleifen, die Node.js Worker -Threads und asynchrones Verhalten implementiert. Es fungiert auch als plattformübergreifende abstrakte Bibliothek, die einfach posix-ähnlichen Zugriff auf alle wichtigen Betriebssystemsysteme viele gemeinsame Aufgaben wie Interaktion mit Dateisystemen, Sockets, Timer und Systemereignissen kann. Libuv bietet auch einen abstrakten pthreadsähnlichen Faden, der für komplexere Asynchronen verwendet werden kann. Die C/C ++ - Erweiterung von Node.js muss über die Standard -Ereignisschleife hinausgehen. Der Plug-in-Autor befürwortet darüber nachzudenken, wie die Blockierung von E/A-Ereignisschleifen und die vollständige aufgabenintensive Arbeit durch Libuv-nicht blockierende Systemvorgänge, Worker-Threads und benutzerdefinierte Threads vermeiden kann.
• Node.js integrierte Bibliothek: Node.js selbst verwendet eine große Anzahl von C/C ++-Erweiterungs-APIs. Die wichtigste Klasse für C/C ++ - Erweiterungsknoten: ObjectWrap
• Node.js 'zahlreiche statische Verbindungsbibliotheken, wie z. Weitere Informationen finden Sie unter den eigenen Abhängigkeiten von Node.js finden Sie weitere Informationen. Klicken Sie auf mein offizielles Beispiel für Node.js -Erweiterungsbibliothek, der möglicherweise der Ausgangspunkt für Sie ist, um eine C/C ++ - Erweiterungsbibliothek für Node.js. Nur V8- und OpenSSL -Klassen werden häufig in Knoten C/C ++ - Erweiterungen häufig verwendet.
Knoten C/C ++ Erweiterung Erste Bombe - Neueste Beispiel Hallo Welt
Dieses Beispiel gilt für node.js Versionsnummer v5.0 oder höher.
// hello.jsconst addon = required ('./ Build/release/addon'); console.log (addon.hello ()); // 'World' // hello.cc#include <node.h> #include <v8.h> Namespace Demo {Verwenden von v8 :: functionCallbackInfo; Verwendung von v8 :: isolat; Verwendung v8 :: local; Verwendung von v8 :: object; Verwendung von v8 :: string; v8 :: valid; void -Methode (const funktionskalle) {void method (const funktions- args.GetIsolate();args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));}void init(Local<Object> exports) {NODE_SET_METHOD(exports, "hello", Method);}NODE_MODULE(addon, init)} // namespace demo // binding.gyp{"targets": [{"target_name": "addon", "Quellen": ["hello.cc"]}]}Befehl node-gyp
Die Codekopie lautet wie folgt:
Node-GYP-Konfiguration Build
Das obige ist die relevante Kenntnis von Node.js Addons Translation (C/C ++ - Erweiterung), die Ihnen vom Editor vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!