Heim >Web-Frontend >js-Tutorial >Verwenden Sie C, um Erweiterungsmodule für node.js_node.js zu schreiben
Voraussetzung: Installieren Sie node.js, Python2.7 und Visual Studio 2013.
Prozess:
Installieren Sie zunächst das GYP-Projektgenerierungstool npm install -g node-gyp.
Erstellen Sie das Testverzeichnis, das unser Arbeitsverzeichnis ist, um den C-Quellcode zu speichern. Dies ist die gyp-Projektdatei >
#include <node.h> using namespace v8; Handle<Value> Hello(const Arguments& args) { HandleScope scope; return scope.Close(String::New("Hello world!")); } void init(Handle<Object> target) { NODE_SET_METHOD(target, "hello", Hello); } NODE_MODULE(hello, init)
Wenn es korrekt ausgeführt wird, wird ein Verzeichnis ----build angezeigt, in dem die vs2013-Projektdatei für Sie generiert wird, damit Sie sie in vs2013 bearbeiten und kompilieren können.
Natürlich können Sie zum Kompilieren auch direkt den Befehl node-gyp build verwenden.
1. C:UsersAdministrator.node-gyp
2. Das Hallo in NODE_MODULE (Hallo, Init) ist der Modulname und muss mit dem Dateinamen übereinstimmen. Andernfalls tritt beim Kompilieren kein Problem auf, es tritt jedoch ein Fehler auf. Denn bei require('./hello.node') wird nicht nur die entsprechende Datei gefunden, sondern auch das entsprechende Modul gefunden.
3. Ich habe Pu Lings Buch „Node.js in a Simple Language“ verfolgt und auf einige Webseiten zum Studieren verwiesen. In der GYP-Projektdatei gibt es ein Bedingungselement, „Bibliotheken“: ['- lnode.lib'], aufgrund dieses Satzes erhielt ich beim Kompilieren immer wieder eine Fehlermeldung: Die Datei konnte nicht geöffnet werden, aber sie meldete nur einen Fehler. Ich habe viele Informationen gesucht, konnte sie aber nicht lösen Dann habe ich node.lib direkt in das Arbeitsverzeichnis kopiert und über die Befehlszeile erfolgreich kompiliert. Aber in vs2013 war der Fehler immer noch derselbe. Schließlich ging ich auf die offizielle Website und stellte fest, dass keiner der Beispiele diesen Parameter bereitstellte, und alles war in Ordnung. Liebe Götter, wer kann eine richtige Erklärung geben? !
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er gefällt Ihnen allen.