Im Allgemeinen sollte der Server unterschiedliche Antworten für verschiedene URL -Anfragen haben. Wir müssen die angeforderte URL und andere erforderliche Get- und Post -Parameter für die Route bereitstellen. Anschließend muss die Route den entsprechenden Code basierend auf diesen Daten ausführen. Alle Daten, die wir benötigen, sind im Anforderungsobjekt enthalten, das als erster Parameter der Rückruffunktion von OnRequest () übergeben wird. Um diese Daten zu analysieren, müssen zusätzliche Module aufgerufen werden, nämlich die URL- und QueryString -Module.
URL: Das
Das Modul verfügt über Dienstprogramme für die URL -Auflösung und -analysiert. Anruf benötigen ('url') zu
benutze es.
Parsen -URL -Objekte haben einige oder alle folgenden Felder, je nachdem, ob sie in der URL -Zeichenfolge existieren oder nicht. Alle Teile, die sich nicht in der URL -Zeichenfolge befinden, befinden sich nicht im analysierten Objekt. Beispiele werden für die URL angezeigt
'http: // user: [email protected]: 8080/p/a/t/h? query = String#Hash'
HREF: Die vollständige URL, die ursprünglich analysiert wurde. Sowohl das Protokoll als auch der Wirt sind niedriger.
Beispiel: 'http: // user: [email protected]: 8080/p/a/t/h? Query = String#Hash'
Protokoll: Das Anforderungsprotokoll, geringer.
Beispiel: 'http:'
Host: Der vollständige Abschnitt mit niedrigerem Host der URL, einschließlich Portinformationen.
Beispiel: 'host.com:8080' '
AUTH: Der Anteil der Authentifizierungsinformationen einer URL.
Beispiel: 'Benutzer: Pass' '
Hostname: Nur der niedrigere Hostname -Teil des Hosts.
Beispiel: 'host.com'
Port: Der Portnummer Teil des Hosts.
Beispiel: '8080'
PATHNAME: Der Pfadabschnitt der URL, der nach dem Host und vor der Abfrage kommt, einschließlich des anfänglichen Schrägs, falls vorhanden.
Beispiel: '/p/a/t/h'
Suche: Der Teil der URL 'Abfragebring ", einschließlich des führenden Fragezeichens.
Beispiel: '? Query = String' '
Pfad: Verkettung von Pathname und Suche.
Beispiel: '/p/a/t/h? Query = string' '
Abfrage: Entweder der Params-Teil der Abfragebarstellung oder ein QueryString-Parsed-Objekt.
Beispiel: 'query = string' oder {'query': 'string'}
Hash: Der "Fragment" -Teil der URL einschließlich des Pfundsignals.
Beispiel: '#hash'
Wir werden die Abhängigkeitsinjektion verwenden, um das Routing -Modul lockerer hinzuzufügen. Die Funktion, die das Routing -Ziel ist, wird als Anforderungshandler bezeichnet. Für die Implementierung des Anforderungshandlers müssen ein Modul namens RequestHandler erstellt werden, was natürlich als andere benannt werden kann. Fügen Sie für jeden Anforderungshandler eine Platzhalterfunktion hinzu und exportieren Sie diese Funktionen dann als Modulmethoden, damit das Anforderungshandler und das Routing -Modul mit der Route verbunden werden können, damit die Route befolgt werden kann.
Es ist besonders zu beachten, dass eine Reihe von Anforderungshandlern hier durch ein Objekt weitergegeben werden muss, und das Objekt muss unter Verwendung einer locker gekoppelten Methode in die Route () -Funktion eingefügt werden.
Wir können die Anforderungshandhabungsfunktion aus dem übergebenen Objekt genauso wie Elemente aus dem assoziativen Array abrufen. Daher haben wir einen kurzen und reibungslosen Ausdruck wie Griff [Pathname] ();. Der Code sieht so aus:
var handle = {} handle ["/"] = requestHandlers.start; Handle ["/start"] = RequestHandlers.start; Handle ["/Upload"] = RequestHandlers.Upload;