2016-05-15 4 views
1

Ich habe diese Node.js In Aktion gelesen und es gibt diese index.html, die socket.io.js von node_modules Ordner verweist (glaube ich).Wie löst das Skript-Tag den Pfad zu node_modules auf?

Wie löst das folgende Script-Tag den Pfad zu socket.io.js auf, wenn sich der Ordner node_modules in einem Verzeichnis befindet, in dem sich die index.html befindet?

Das script-Tag:

<script src="/socket.io/socket.io.js" type="text/javascript"></script> 
+0

Mögliche Duplikate von [Kann socket.io.js nicht finden] (http://stackoverflow.com/questions/8689877/cant-find-socket-io-js) – JordanHendrix

+0

Danke JordanHendrix aber in meinem Fall gibt es Kein Fehler, der sagt, dass die Datei nicht gefunden werden kann. Von meinem Ende an funktioniert alles, aber ich möchte verstehen, wie das Skript-Tag die Datei socket.io.js im Verzeichnis node_modules/socket.io gefunden hat, wenn sie nicht explizit im Skript-Tag angegeben ist. Vielen Dank im Voraus! – Samot

Antwort

0
  • Socket.io liest den Inhalt der socket.io-client/socket.io.js Datei in eine Variable.

  • Socket.io hat Zugriff auf den HTTP-Server Ihrer App, hört dann Anfragen ab, die der URL von "/socket.io/socket.io.js" entsprechen und antwortet mit dem Inhalt dieser Variablen oben

Sie können diese sehen in der socket.io source code:

+0

Danke Saeed, also sagst du, dass '/socket.io/socket.io.js' mit dem tatsächlichen Verzeichnis übereinstimmt, in dem sich die socket.io.js wirklich befindet (zB node_modules/socket.io/lib/socket.io. js)? Danke vielmals! – Samot

+1

@Samot, Nein, der physische Dateipfad und die URL müssen nicht übereinstimmen. Die physische Datei stammt aus einem anderen npm-Paket namens socket.io-client, von dem das socket.io-Paket abhängt. So befindet sich die Datei unter 'node_modules/socket.io-client/socket.io.js' –

+0

Ok Danke Saeed. Also ist es sicher und richtig zu sagen, dass die '/socket.io/socket.io.js' auf 'node_modules/socket.io/lib/socket.io.js' verweist? Vielen Dank im Voraus – Samot

0

Wenn Sie ein Modul in Ihre Datei einfügen, sucht der Knoten zuerst nach dem Modul im Ordner node_modules im aktuellen Verzeichnis. Wenn es dort nicht gefunden wird, wird es in das übergeordnete Verzeichnis verschoben und sucht nach dem Modul in node_modules, das in diesem Verzeichnis vorhanden ist, und es bewegt sich weiter, bis es das erforderliche Modul findet.

Verwandte Themen