Im Allgemeinen sollte der Server unterschiedlich auf verschiedene URL-Anfragen reagieren. Wir müssen der Route die angeforderte URL und andere erforderliche GET- und POST-Parameter bereitstellen, und dann muss die Route den entsprechenden Code basierend auf diesen Daten ausführen. Alle von uns benötigten Daten sind im Anforderungsobjekt enthalten, das als erster Parameter der Rückruffunktion onRequest() übergeben wird. Um diese Daten zu analysieren, müssen zusätzliche Module aufgerufen werden, nämlich die URL- und Querystring-Module.
URL:Dies
Das Modul verfügt über Dienstprogramme zur URL-Auflösung und -Analyse. Rufen Sie require('url') auf
Benutze es.
Geparste URL-Objekte verfügen über einige oder alle der folgenden Felder, je nachdem, ob sie in der URL-Zeichenfolge vorhanden sind oder nicht. Für die URL werden keine Beispiele angezeigt
'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
href: Die vollständige URL, die ursprünglich analysiert wurde. Sowohl das Protokoll als auch der Host werden in Kleinbuchstaben geschrieben.
Beispiel: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
Protokoll: Das Anforderungsprotokoll, in Kleinbuchstaben.
Beispiel: 'http:'
Host: Der vollständige Host-Teil der URL in Kleinbuchstaben, einschließlich Portinformationen.
Beispiel: 'host.com:8080'
Auth: Der Authentifizierungsinformationsteil einer URL.
Beispiel: 'user:pass'
Hostname: Nur der kleingeschriebene Teil des Hostnamens des Hosts.
Beispiel: 'host.com'
Port: Der Portnummernteil des Hosts.
Beispiel: '8080'
Pfadname: Der Pfadabschnitt der URL, der nach dem Host und vor der Abfrage steht, einschließlich des anfänglichen Schrägstrichs, falls vorhanden.
Beispiel: '/p/a/t/h'
Suche: Der „Abfragezeichenfolge“-Teil der URL, einschließlich des führenden Fragezeichens.
Beispiel: '?query=string'
Pfad: Verkettung von Pfadname und Suche.
Beispiel: '/p/a/t/h?query=string'
Abfrage: Entweder der „params“-Teil der Abfragezeichenfolge oder ein von der Abfragezeichenfolge analysiertes Objekt.
Beispiel: 'query=string' oder {'query':'string'}
Hash: Der „Fragment“-Teil der URL, einschließlich des Nummernzeichens.
Beispiel: '#hash'
Wir werden das Routing-Modul lose mithilfe der Abhängigkeitsinjektion hinzufügen. Die Funktion, die das Routing-Ziel ist, wird als Anforderungshandler bezeichnet. Die Implementierung der Anforderungsverarbeitungsfunktion muss ein Modul namens „requestHandlers“ erstellen. Fügen Sie für jeden Anforderungshandler eine Platzhalterfunktion hinzu und exportieren Sie diese Funktionen dann als Modulmethoden, sodass der Anforderungshandler und das Routing-Modul verbunden werden können, sodass das Routing verfolgt werden kann.
Insbesondere muss eine Reihe von Anforderungshandlern durch ein Objekt geleitet werden, und dieses Objekt muss lose gekoppelt in die Funktion route() eingefügt werden.
var handle = {} handle["/"] = requestHandlers.start; handle["/start"] = requestHandlers.start; handle["/upload"] = requestHandlers.upload;