


Lassen Sie uns über das URL-Modul und das Querystring-Modul in Node sprechen
Feb 23, 2023 pm 07:39 PMurl
-Modul und querystring
-Modul sind zwei sehr wichtige URL
-Verarbeitungsmodule. Es wird h?ufig bei der Entwicklung eines node
-Servers verwendet. url
模塊和querystring
模塊是非常重要的兩個(gè)URL
處理模塊。在做node
服務(wù)端的開發(fā)時(shí)會經(jīng)常用到。
url
在介紹url
模塊之前我們先來一張圖,看懂了這張圖對于url
這個(gè)模塊你就基本上沒什么問題了。
我們來解釋下各自的含義
- protocol:協(xié)議,需要注意的是包含了
:
,并且是小寫的?!鞠嚓P(guān)教程推薦:nodejs視頻教程、編程教學(xué)】 - slashes:如果
:
后面跟了兩個(gè)//
,那么為true。 - auth:認(rèn)證信息,如果有密碼,為
usrname:passwd
,如果沒有,則為usrname
。注意,這里區(qū)分大小寫。 - host:主機(jī)名。注意包含了端口,比如
ke.qq.com:8080
,并且是小寫的。 - hostname:主機(jī)名,不包含端口,并且是小寫的。
- port: 端口號。
- path:路徑部分,包含search部分。
- pathname:路徑部分,不包含search部分。
- search:查詢字符串,注意,包含了
?
,此外,值是沒有經(jīng)過decode的。 - query:字符串 或者 對象。如果是字符串,則是
search
去掉?
,其余一樣;如果是對象,那么是decode過的。 - hash:哈希部分,注意包含了
#
。 - href:原始的地址。不過需要注意的是,
protocol
、host
會被轉(zhuǎn)成小寫字母。
下面我們來講解下它的三個(gè)常用方法
parse(urlString, parseQueryString, slashesDenoteHost)
該方法將url
字符串,解析成object
,便于開發(fā)者進(jìn)行操作。
const url = require("url"); const str = "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1"; const obj = url.parse(str); console.log(obj);
輸出
該方法還支持傳遞另外兩個(gè)參數(shù),parseQueryString
和slashesDenoteHos
parseQueryString:(默認(rèn)為false)如為false
,則urlObject.query
為未解析的字符串,比如nick=%E4%B8%AD%E6%96%87
,且對應(yīng)的值不會decode
;如果parseQueryString
為true,則urlObject.query
為object
,比如{ nick: '中文' }
,且值會被`decode;
const url = require("url"); const str = "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1"; const obj2 = url.parse(str, true); console.log(obj2);
slashesDenoteHos:(默認(rèn)為false)如果為true
,那么類似//randy/nick
里的randy
就會被認(rèn)為是hostname
;如果為false
,則randy
被認(rèn)為是pathname
的一部分。
光看起來可能不太理解這句話的含義,下面筆者舉個(gè)例子我相信你們就明白了。
const str2 = "//randy/nick"; const obj3 = url.parse(str2, true, false); console.log(obj3); const obj4 = url.parse(str2, true, true); console.log(obj4);
format(urlObject)
這個(gè)方法就是parse
的反向操作。將對象轉(zhuǎn)成url
字符串。
const pathObj = { protocol: "http:", slashes: true, auth: "user:password", host: "randy.com:8080", port: "8080", hostname: "randy.com", hash: "#part=1", search: "?nick=%E4%B8%AD%E6%96%87", query: "nick=%E4%B8%AD%E6%96%87", pathname: "/index.html", path: "/index.html?nick=%E4%B8%AD%E6%96%87", href: "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1", }; console.log(url.format(pathObj)); // http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1
resolve(from, to)
該方法用于解析相對于基本URL
的目標(biāo)URL
。
console.log(url.resolve("/one/two/three", "four")); // /one/two/four console.log(url.resolve("http://example.com/", "/one")); // http://example.com/one console.log(url.resolve("http://example.com/one", "/two")); // http://example.com/two console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", "./two")); // http://example.com/one/ddd/ddd/two console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", "../two")); // http://example.com/one/ddd/two console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", ".../two")); // http://example.com/one/ddd/ddd/.../two
querystring
querystring
這個(gè)模塊,也是用來做url
查詢參數(shù)的解析。這里我們重點(diǎn)分析下它的parse
和stringify
兩個(gè)方法。
parse(str, sep, eq, options)
parse
是將查詢字符串轉(zhuǎn)成對象類型,并且也會decode
。
const querystring = require("querystring"); const str = "nick=randy&age=24&nick2=%E4%B8%AD%E6%96%87"; const obj = querystring.parse(str); console.log(obj); // { nick: 'randy', age: '24', nick2: '中文' }
下面我們再來看看它的第二和第三個(gè)參數(shù)。其實(shí)相當(dāng)于可以替換&、=
為自定義字符,下面筆者舉個(gè)例子就很快明白了。
const str1 = "name-randy|country-cn"; const obj1 = querystring.parse(str1); console.log(obj1); // { 'name-randy|country-cn': '' } const obj2 = querystring.parse(str1, "|", "-"); console.log(obj2); // { name: 'randy', country: 'cn' }
相當(dāng)于把&
替換成了|
,把=
替換成了-
。筆者感覺配到這種情況應(yīng)該不多。
stringify(obj, sep, eq, options)
這個(gè)方法就是上面parse
url
Bevor wir das Modulurl
einführen, machen wir ein Foto, um zu verstehen, wie sich dieses Bild auf url</code > auswirkt Habe grunds?tzlich keine Probleme mit diesem Modul. <p></p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/024/6bb46e714838a62258717adba617810f-0.png" class="lazy" alt="Lassen Sie uns über das URL-Modul und das Querystring-Modul in Node sprechen" loading="lazy"/>????uns Lassen Sie uns ihre jeweiligen Bedeutungen erkl?ren??<ul><li>Protokoll: Protokoll Es ist zu beachten, dass es <code>:
enth?lt und in Kleinbuchstaben geschrieben ist. [Empfohlene verwandte Tutorials: nodejs-Video-Tutorial, Programmierunterricht]:
befolgt wird von Wenn es zwei //
gibt, dann ist es wahr. usrname:passwd
, wenn nicht, ist es usrname
. Beachten Sie, dass hierbei die Gro?-/Kleinschreibung beachtet wird. ke.qq.com:8080
, und in Kleinbuchstaben geschrieben ist. ?
enth?lt. Au?erdem wird der Wert nicht dekodiert. search
ohne ?
, und der Rest ist dasselbe; wenn es sich um ein Objekt handelt, wird es dekodiert. #
enthalten ist. protocol
und host
in Kleinbuchstaben umgewandelt werden. parse(urlString, parseQueryString, slashesDenoteHost) h4>??Diese Methode Analysiert die Zeichenfolge url
in object
, was für Entwickler praktisch ist. ??const obj3 = {
nick: &quot;randy&quot;,
age: &quot;24&quot;,
};
const str4 = querystring.stringify(obj3);
console.log(str4); // nick=randy&amp;age=24
??Ausgabe????
????Diese Methode unterstützt auch die übergabe von zwei weiteren Parametern, parseQueryString
und slashesDenoteHos
????parseQueryString: (Standard ist false), wenn es sich um false
, dann ist urlObject.query
eine nicht geparste Zeichenfolge, wie z. B. nick=%E4%B8%AD%E6%96%87
und entspricht Der Wert wird nicht dekodiert
; wenn parseQueryString
wahr ist, dann ist urlObject.query
ein Objekt
, z. B. { Spitzname: 'Chinese'
, und der Wert wird `dekodiert ??const obj5 = {
name: &quot;randy&quot;,
country: &quot;cn&quot;,
};
const str6 = querystring.stringify(obj5, &quot;|&quot;, &quot;-&quot;);
console.log(str6); // name-randy|country-c
??
????slashesDenoteHos: (Standard ist false) wenn true
, dann ?hnlich wie / <code>randy
in /randy/nick wird als hostname
betrachtet; wenn es false
ist, dann randy< /code> code> wird als Teil von <code>pathname
betrachtet. ????M?glicherweise verstehen Sie die Bedeutung dieses Satzes nicht auf den ersten Blick. Ich werde Ihnen unten ein Beispiel geben und ich glaube, Sie werden es verstehen. ??rrreee??
??< h4 data-id="heading-3">format(urlObject)
??Diese Methode ist die umgekehrte Operation von parse
. Konvertieren Sie das Objekt in einen url
-String. ??rrreeeresolve(from, to)
??Diese Methode wird verwendet, um Ziele relativ zur Basis-URL</code aufzul?sen > <code>URL
. ??rrreeequerystring
??querystring
Dieses Modul wird auch zum Parsen von url
-Abfrageparametern verwendet. Hier konzentrieren wir uns auf die Analyse seiner beiden Methoden: parse
und stringify
. ??parse(str, sep, eq, options)
??parse
konvertiert die Abfragezeichenfolge in den Objekttyp , und auch decode
. ??rrreee??Werfen wir einen Blick auf den zweiten und dritten Parameter. Tats?chlich entspricht es dem Ersetzen von & und =
durch benutzerdefinierte Zeichen. Der Autor wird unten ein Beispiel geben, und Sie werden es schnell verstehen. ??rrreee??Es entspricht dem Ersetzen von &
durch |
und dem Ersetzen von =
durch -
. Der Autor ist der Meinung, dass diese Situation selten sein sollte. ??stringify(obj, sep, eq, options)
??Diese Methode ist die Umkehrung des obigenparse
betreiben. Kommen wir direkt zum Beispiel unten??rrreee??Diese Methode unterstützt auch benutzerdefinierte Trennzeichen. ??const obj5 = { name: &quot;randy&quot;, country: &quot;cn&quot;, }; const str6 = querystring.stringify(obj5, &quot;|&quot;, &quot;-&quot;); console.log(str6); // name-randy|country-c
更多node相關(guān)知識,請?jiān)L問:nodejs 教程!
Das obige ist der detaillierte Inhalt vonLassen Sie uns über das URL-Modul und das Querystring-Modul in Node sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools In der heutigen Zeit der rasanten Entwicklung des Internets ist die Front-End-Entwicklung immer wichtiger geworden. Da Benutzer immer h?here Anforderungen an das Erlebnis von Websites und Anwendungen stellen, müssen Frontend-Entwickler effizientere und flexiblere Tools verwenden, um reaktionsf?hige und interaktive Schnittstellen zu erstellen. Als zwei wichtige Technologien im Bereich der Front-End-Entwicklung k?nnen PHP und Vue.js in Kombination als perfekte Waffe bezeichnet werden. In diesem Artikel geht es um die Kombination von PHP und Vue sowie um detaillierte Codebeispiele, die den Lesern helfen sollen, diese beiden besser zu verstehen und anzuwenden

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung gro?er Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tats?chlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte er?ffnen. In diesem Artikel wird die M?glichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verst?ndnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden h?ufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberfl?chen verwendet

Django ist ein in Python geschriebenes Webanwendungs-Framework, das Wert auf schnelle Entwicklung und saubere Methoden legt. Obwohl Django ein Web-Framework ist, müssen Sie zur Beantwortung der Frage, ob Django ein Front-End oder ein Back-End ist, ein tiefes Verst?ndnis der Konzepte von Front-End und Back-End haben. Das Front-End bezieht sich auf die Schnittstelle, mit der Benutzer direkt interagieren, und das Back-End bezieht sich auf serverseitige Programme. Sie interagieren mit Daten über das HTTP-Protokoll. Wenn das Front-End und das Back-End getrennt sind, k?nnen die Front-End- und Back-End-Programme unabh?ngig voneinander entwickelt werden, um Gesch?ftslogik bzw. interaktive Effekte sowie den Datenaustausch zu implementieren.

In Front-End-Entwicklungsinterviews decken h?ufige Fragen ein breites Themenspektrum ab, darunter HTML/CSS-Grundlagen, JavaScript-Grundlagen, Frameworks und Bibliotheken, Projekterfahrung, Algorithmen und Datenstrukturen, Leistungsoptimierung, dom?nenübergreifende Anfragen, Front-End-Engineering, Designmuster sowie neue Technologien und Trends. Interviewerfragen sollen die technischen F?higkeiten, die Projekterfahrung und das Verst?ndnis des Kandidaten für Branchentrends beurteilen. Daher sollten Kandidaten in diesen Bereichen umfassend vorbereitet sein, um ihre F?higkeiten und Fachkenntnisse unter Beweis zu stellen.

Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bew?ltigen kann! Django ist ein effizientes und skalierbares Webanwendungs-Framework. Es unterstützt mehrere Webentwicklungsmodelle, einschlie?lich MVC und MTV, und kann problemlos hochwertige Webanwendungen entwickeln. Django unterstützt nicht nur die Back-End-Entwicklung, sondern kann auch schnell Front-End-Schnittstellen erstellen und durch die Vorlagensprache eine flexible Ansichtsanzeige erreichen. Django kombiniert Front-End-Entwicklung und Back-End-Entwicklung zu einer nahtlosen Integration, sodass sich Entwickler nicht auf das Lernen spezialisieren müssen

Kombination von Golang und Front-End-Technologie: Um zu untersuchen, welche Rolle Golang im Front-End-Bereich spielt, sind spezifische Codebeispiele erforderlich. Mit der rasanten Entwicklung des Internets und mobiler Anwendungen ist die Front-End-Technologie immer wichtiger geworden. Auch in diesem Bereich kann Golang als leistungsstarke Back-End-Programmiersprache eine wichtige Rolle spielen. In diesem Artikel wird untersucht, wie Golang mit Front-End-Technologie kombiniert wird, und sein Potenzial im Front-End-Bereich anhand spezifischer Codebeispiele demonstriert. Die Rolle von Golang im Front-End-Bereich ist effizient, pr?gnant und leicht zu erlernen

Das Go-Framework besteht aus einer Reihe von Komponenten, die die integrierten Bibliotheken von Go erweitern und vorgefertigte Funktionen bereitstellen (z. B. Webentwicklung und Datenbankoperationen). Zu den beliebten Go-Frameworks geh?ren Gin (Webentwicklung), GORM (Datenbankoperationen) und RESTful (API-Verwaltung). Middleware ist ein Interceptor-Muster in der HTTP-Anforderungsverarbeitungskette und wird verwendet, um Funktionen wie Authentifizierung oder Anforderungsprotokollierung hinzuzufügen, ohne den Handler zu ?ndern. Die Sitzungsverwaltung verwaltet den Sitzungsstatus durch die Speicherung von Benutzerdaten. Sie k?nnen gorilla/sessions zum Verwalten von Sitzungen verwenden.

Was ist JPA? Wie unterscheidet es sich von JDBC? JPA (JavaPersistence API) ist eine Standardschnittstelle für objektrelationales Mapping (ORM), die es Java-Entwicklern erm?glicht, vertraute Java-Objekte zum Betreiben von Datenbanken zu verwenden, ohne SQL-Abfragen direkt in die Datenbank schreiben zu müssen. JDBC (JavaDatabaseConnectivity) ist die Standard-API von Java für die Verbindung mit Datenbanken. Sie erfordert, dass Entwickler SQL-Anweisungen verwenden, um die Datenbank zu betreiben. JPA kapselt JDBC, bietet eine bequemere und übergeordnete API für die objektrelationale Zuordnung und vereinfacht Datenzugriffsvorg?nge. Was ist in JPA eine Entit?t? juristische Person
