Query-String
[Stabil: 2 - Stabil]
Stabil: 2 Stabilität: 2 - Stabil
Quellcode: lib/querystring.js
Das Modul node:querystring
bietet Dienstprogramme zum Parsen und Formatieren von URL-Abfragezeichenfolgen. Es kann folgendermaßen aufgerufen werden:
const querystring = require('node:querystring')
querystring
ist performanter als <URLSearchParams>, aber keine standardisierte API. Verwenden Sie <URLSearchParams>, wenn die Leistung nicht kritisch ist oder wenn die Kompatibilität mit Browsercode wünschenswert ist.
querystring.decode()
Hinzugefügt in: v0.1.99
Die Funktion querystring.decode()
ist ein Alias für querystring.parse()
.
querystring.encode()
Hinzugefügt in: v0.1.99
Die Funktion querystring.encode()
ist ein Alias für querystring.stringify()
.
querystring.escape(str)
Hinzugefügt in: v0.1.25
str
<string>
Die Methode querystring.escape()
führt eine URL-Prozentcodierung für die angegebene str
in einer Weise durch, die für die spezifischen Anforderungen von URL-Abfragezeichenfolgen optimiert ist.
Die Methode querystring.escape()
wird von querystring.stringify()
verwendet und wird im Allgemeinen nicht direkt verwendet. Sie wird hauptsächlich exportiert, um Anwendungscode zu ermöglichen, eine alternative Prozentcodierungsimplementierung bereitzustellen, falls erforderlich, indem querystring.escape
einer alternativen Funktion zugewiesen wird.
querystring.parse(str[, sep[, eq[, options]]])
[Verlauf]
Version | Änderungen |
---|---|
v8.0.0 | Mehrere leere Einträge werden jetzt korrekt geparst (z. B. &=&= ). |
v6.0.0 | Das zurückgegebene Objekt erbt nicht mehr von Object.prototype . |
v6.0.0, v4.2.4 | Der Parameter eq darf jetzt eine Länge von mehr als 1 haben. |
v0.1.25 | Hinzugefügt in: v0.1.25 |
str
<string> Die zu parsende URL-Abfragezeichenfolgesep
<string> Die Teilzeichenfolge, die verwendet wird, um Schlüssel- und Wertepaare in der Abfragezeichenfolge zu trennen. Standard:'&'
.eq
<string>. Die Teilzeichenfolge, die verwendet wird, um Schlüssel und Werte in der Abfragezeichenfolge zu trennen. Standard:'='
.options
<Object>decodeURIComponent
<Function> Die Funktion, die zum Dekodieren von prozentcodierten Zeichen in der Abfragezeichenfolge verwendet wird. Standard:querystring.unescape()
.maxKeys
<number> Gibt die maximale Anzahl zu parsende Schlüssel an. Geben Sie0
an, um die Beschränkungen der Schlüsselzählung aufzuheben. Standard:1000
.
Die Methode querystring.parse()
parst eine URL-Abfragezeichenfolge (str
) in eine Sammlung von Schlüssel- und Wertepaaren.
Beispielsweise wird die Abfragezeichenfolge 'foo=bar&abc=xyz&abc=123'
wie folgt geparst:
{
"foo": "bar",
"abc": ["xyz", "123"]
}
Das von der Methode querystring.parse()
zurückgegebene Objekt erbt nicht prototypisch vom JavaScript-Object
. Das bedeutet, dass typische Object
-Methoden wie obj.toString()
, obj.hasOwnProperty()
und andere nicht definiert sind und nicht funktionieren.
Standardmäßig wird davon ausgegangen, dass prozentcodierte Zeichen innerhalb der Abfragezeichenfolge die UTF-8-Codierung verwenden. Wenn eine alternative Zeichencodierung verwendet wird, muss eine alternative Option decodeURIComponent
angegeben werden:
// Angenommen, die Funktion gbkDecodeURIComponent existiert bereits...
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, { decodeURIComponent: gbkDecodeURIComponent })
querystring.stringify(obj[, sep[, eq[, options]]])
Hinzugefügt in: v0.1.25
obj
<Object> Das Objekt, das in einen URL-Query-String serialisiert werden sollsep
<string> Die Substring, die verwendet wird, um Schlüssel- und Wertepaare im Query-String zu begrenzen. Standard:'&'
.eq
<string>. Die Substring, die verwendet wird, um Schlüssel und Werte im Query-String zu begrenzen. Standard:'='
.options
encodeURIComponent
<Function> Die Funktion, die verwendet wird, wenn URL-unsichere Zeichen in Prozentkodierung im Query-String umgewandelt werden. Standard:querystring.escape()
.
Die Methode querystring.stringify()
erzeugt einen URL-Query-String aus einem gegebenen obj
, indem sie durch die "eigenen Eigenschaften" des Objekts iteriert.
Sie serialisiert die folgenden Wertetypen, die in obj
übergeben werden: <string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]> Die numerischen Werte müssen endlich sein. Alle anderen Eingabewerte werden in leere Strings umgewandelt.
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
// Gibt 'foo=bar&baz=qux&baz=quux&corge=' zurück
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':')
// Gibt 'foo:bar;baz:qux' zurück
Standardmäßig werden Zeichen, die eine Prozentkodierung innerhalb des Query-Strings erfordern, als UTF-8 kodiert. Wenn eine alternative Kodierung erforderlich ist, muss eine alternative encodeURIComponent
-Option angegeben werden:
// Angenommen, die Funktion gbkEncodeURIComponent existiert bereits,
querystring.stringify({ w: '中文', foo: 'bar' }, null, null, { encodeURIComponent: gbkEncodeURIComponent })
querystring.unescape(str)
Hinzugefügt in: v0.1.25
str
<string>
Die Methode querystring.unescape()
führt die Decodierung von URL-Prozentzeichen-kodierten Zeichen auf dem gegebenen str
durch.
Die Methode querystring.unescape()
wird von querystring.parse()
verwendet und wird im Allgemeinen nicht direkt verwendet. Sie wird hauptsächlich exportiert, um Anwendungscode zu ermöglichen, eine alternative Dekodierungs-Implementierung bereitzustellen, falls erforderlich, indem querystring.unescape
einer alternativen Funktion zugewiesen wird.
Standardmäßig versucht die Methode querystring.unescape()
, die in JavaScript integrierte Methode decodeURIComponent()
zur Dekodierung zu verwenden. Wenn dies fehlschlägt, wird ein sicheres Äquivalent verwendet, das bei fehlerhaften URLs nicht auslöst.