Skip to content

Query-String

[Stable: 2 - Stabil]

Stable: 2 Stabilität: 2 - Stabil

Quellcode: lib/querystring.js

Das Modul node:querystring bietet Hilfsfunktionen zum Parsen und Formatieren von URL-Query-Strings. Es kann über Folgendes aufgerufen werden:

js
const querystring = require('node:querystring');

querystring ist leistungsfähiger als <URLSearchParams>, aber keine standardisierte API. Verwenden Sie <URLSearchParams>, wenn die Leistung nicht kritisch ist oder wenn die Kompatibilität mit Browsercode erwünscht 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

Die Methode querystring.escape() führt eine URL-Prozentcodierung für die gegebene str in einer Weise durch, die für die spezifischen Anforderungen von URL-Query-Strings 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 Prozentcodierungs-Implementierung bereitzustellen, falls erforderlich, indem querystring.escape einer alternativen Funktion zugewiesen wird.

querystring.parse(str[, sep[, eq[, options]]])

[Verlauf]

VersionÄnderungen
v8.0.0Mehrere leere Einträge werden jetzt korrekt geparst (z. B. &=&=).
v6.0.0Das zurückgegebene Objekt erbt nicht mehr von Object.prototype.
v6.0.0, v4.2.4Der Parameter eq kann jetzt eine Länge von mehr als 1 haben.
v0.1.25Hinzugefügt in: v0.1.25
  • str <string> Der zu parsende URL-Query-String
  • sep <string> Die Subzeichenfolge, die zum Abgrenzen von Schlüssel- und Wertpaaren im Query-String verwendet wird. Standard: '&'.
  • eq <string>. Die Subzeichenfolge, die zum Abgrenzen von Schlüsseln und Werten im Query-String verwendet wird. Standard: '='.
  • options <Object>
    • decodeURIComponent <Function> Die Funktion, die beim Decodieren von Prozent-codierten Zeichen im Query-String verwendet werden soll. Standard: querystring.unescape().
    • maxKeys <number> Gibt die maximale Anzahl von zu parsenden Schlüsseln an. Geben Sie 0 an, um die Beschränkungen der Schlüsselzählung zu entfernen. Standard: 1000.

Die Methode querystring.parse() parst einen URL-Query-String (str) in eine Sammlung von Schlüssel- und Wertpaaren.

Zum Beispiel wird der Query-String 'foo=bar&abc=xyz&abc=123' geparst in:

json
{
  "foo": "bar",
  "abc": ["xyz", "123"]
}

Das von der Methode querystring.parse() zurückgegebene Objekt erbt nicht prototypisch von dem JavaScript-Object. Dies bedeutet, dass typische Object-Methoden wie obj.toString(), obj.hasOwnProperty() und andere nicht definiert sind und nicht funktionieren.

Standardmäßig wird davon ausgegangen, dass Prozent-codierte Zeichen innerhalb des Query-Strings die UTF-8-Codierung verwenden. Wenn eine alternative Zeichencodierung verwendet wird, muss eine alternative Option decodeURIComponent angegeben werden:

js
// Angenommen, die gbkDecodeURIComponent-Funktion 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 eine URL-Query-String serialisiert werden soll
  • sep <string> Die Substring, die verwendet wird, um Schlüssel- und Wertepaare im Query-String zu trennen. Standard: '&'.
  • eq <string>. Die Substring, die verwendet wird, um Schlüssel und Werte im Query-String zu trennen. Standard: '='.
  • options
    • encodeURIComponent <Function> Die Funktion, die verwendet wird, um URL-unsichere Zeichen in der Query-String in Prozentkodierung umzuwandeln. Standard: querystring.escape().

Die Methode querystring.stringify() erzeugt einen URL-Query-String aus einem gegebenen obj, indem sie die "eigenen Eigenschaften" des Objekts durchläuft.

Sie serialisiert die folgenden Werttypen, 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.

js
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 innerhalb des Query-Strings eine Prozentkodierung erfordern, als UTF-8 kodiert. Wenn eine alternative Kodierung erforderlich ist, muss eine alternative Option encodeURIComponent angegeben werden:

js
// Angenommen, die Funktion gbkEncodeURIComponent existiert bereits,

querystring.stringify({ w: '中文', foo: 'bar' }, null, null,
                      { encodeURIComponent: gbkEncodeURIComponent });

querystring.unescape(str)

Hinzugefügt in: v0.1.25

Die Methode querystring.unescape() führt die Dekodierung von URL-Prozent-kodierten Zeichen in der 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, bei Bedarf eine alternative Dekodierungsimplementierung bereitzustellen, indem querystring.unescape einer alternativen Funktion zugewiesen wird.

Standardmäßig versucht die Methode querystring.unescape(), die in JavaScript integrierte Methode decodeURIComponent() zum Dekodieren zu verwenden. Wenn dies fehlschlägt, wird ein sichereres Äquivalent verwendet, das bei fehlerhaften URLs keine Ausnahme auslöst.