Node.js querystring-Modul
querystring ist ein integriertes Kernmodul in Node.js, das speziell zum Parsen und Formatieren von URL-Query-Strings verwendet wird. Ein Query-String ist der Teil einer URL nach dem Fragezeichen (?), der normalerweise aus Schlüssel-Wert-Paaren besteht, zum Beispiel:?name=John&age=30。
Dieses Modul ist sehr praktisch in Szenarien wie der Datenübertragung zwischen Frontend und Backend und der API-Entwicklung und hilft Entwicklern, URL-Parameter einfach zu handhaben.
Kernmethoden erklärt
querystring.parse(str[, sep[, eq[, options]]])
Parst einen Query-String in ein JavaScript-Objekt.
Parameterbeschreibung:
str: Der zu parsende Query-Stringsep(Optional): Trennzeichen zum Abgrenzen von Schlüssel-Wert-Paaren, Standardwert ist'&'eq(Optional): Trennzeichen zum Abgrenzen von Schlüsseln und Werten, Standardwert ist'='options(Optional): KonfigurationsobjektmaxKeys: Legt die maximale Anzahl der zu parsenden Schlüssel fest, Standardwert ist 1000decodeURIComponent: Funktion, die zum Dekodieren verwendet wird, Standardwert istquerystring.unescape()
Beispielcode:
Beispiel
const query = 'name=John&age=30&city=New+York';
const parsed = querystring.parse(query);
console.log(parsed);
// Ausgabe: { name: 'John', age: '30', city: 'New York' }
querystring.stringify(obj[, sep[, eq[, options]]])
Serialisiert ein JavaScript-Objekt in einen Query-String.
Parameterbeschreibung:
obj: Das zu serialisierende Objektsep(Optional): Trennzeichen für Schlüssel-Wert-Paare, Standardwert ist'&'eq(Optional): Schlüssel-Wert-Trennzeichen, Standardwert ist'='options(Optional): KonfigurationsobjektencodeURIComponent: Für die Kodierung verwendete Funktion, Standardwert istquerystring.escape()
Beispielcode:
Beispiel
const obj = {
name: 'John Doe',
age: 25,
occupation: 'Software Developer'
};
const stringified = querystring.stringify(obj);
console.log(stringified);
// Ausgabe: 'name=John%20Doe&age=25&occupation=Software%20Developer'
querystring.escape(str) und querystring.unescape(str)
Diese beiden Methoden werden jeweils zum Kodieren bzw. Dekodieren von Sonderzeichen in Query-Strings verwendet.
Beispielcode:
Beispiel
const str = 'Hello World!';
const escaped = querystring.escape(str);
console.log(escaped); // Ausgabe: 'Hello%20World%21'
const unescaped = querystring.unescape(escaped);
console.log(unescaped); // Ausgabe: 'Hello World!'
Praktische Anwendungsszenarien
1. Umgang mit GET-Anfrageparametern
Beispiel
const querystring = require('querystring');
http.createServer((req, res) => {
if (req.url.includes('?')) {
const queryString = req.url.split('?')[1];
const params = querystring.parse(queryString);
console.log(params);
res.end(`Empfangene Parameter: ${JSON.stringify(params)}`);
} else {
res.end('Keine Abfrageparameter empfangen');
}
}).listen(3000);
2. API-Query-Strings erstellen
Beispiel
const apiParams = {
q: 'node.js',
page: 1,
limit: 10,
sort: 'desc'
};
const apiUrl = `https://api.example.com/search?${querystring.stringify(apiParams)}`;
console.log(apiUrl);
// Ausgabe: 'https://api.example.com/search?q=node.js&page=1&limit=10&sort=desc'
Wichtige Hinweise
Kodierungsprobleme: Standardmäßig kodiert/dekodiert querystring Sonderzeichen. Wenn Sie die Kodierungsmethode anpassen müssen, können Sie eine Methode übergeben
encodeURIComponentoderdecodeURIComponentFunktion.Datentypen: Alle geparsten Werte sind vom Typ String und müssen manuell in andere Typen (wie Zahlen, boolesche Werte usw.) konvertiert werden.
Verschachtelte Objekte: Das querystring-Modul unterstützt weder das Parsen noch das Serialisieren verschachtelter Objekte. Wenn Sie komplexe Datenstrukturen verarbeiten müssen, können Sie die Verwendung des JSON-Formats in Betracht ziehen.
URL-sichere Zeichen: Leerzeichen werden kodiert als
+anstelle von%20, was anders ist alsencodeURIComponentim Verhalten.
Alternativen
Obwohl das querystring-Modul sehr praktisch ist, empfehlen neuere Versionen von Node.js die Verwendung der APIs URL und URLSearchParams, die modernere und umfassendere Funktionen zur Verarbeitung von URLs bieten.
Beispiel
const params = new URLSearchParams('name=John&age=30');
console.log(params.get('name')); // Ausgabe: 'John'
Zusammenfassung
Das querystring-Modul ist ein leistungsstarkes Werkzeug für die Verarbeitung von Query-Strings in Node.js, besonders geeignet für die Verarbeitung einfacher Schlüssel-Wert-Paar-Daten. Wenn Sie seine Kernmethoden (parse, stringify, escape, unescape) beherrschen, können Sie die Entwicklungseffizienz erheblich steigern. Für komplexere Anforderungen an die URL-Verarbeitung können Sie die APIs URL und URLSearchParams in Betracht ziehen.
Andere Erweiterungen
Integrierte Module in Node.js