Chaîne de requête
[Stable: 2 - Stable]
Stable: 2 Stability: 2 - Stable
Code source : lib/querystring.js
Le module node:querystring
fournit des utilitaires pour analyser et formater les chaînes de requête d'URL. Il est accessible en utilisant :
const querystring = require('node:querystring')
querystring
est plus performant que <URLSearchParams> mais n’est pas une API standardisée. Utilisez <URLSearchParams> lorsque la performance n’est pas critique ou lorsqu’une compatibilité avec le code du navigateur est souhaitable.
querystring.decode()
Ajouté dans : v0.1.99
La fonction querystring.decode()
est un alias de querystring.parse()
.
querystring.encode()
Ajouté dans : v0.1.99
La fonction querystring.encode()
est un alias de querystring.stringify()
.
querystring.escape(str)
Ajouté dans : v0.1.25
str
<string>
La méthode querystring.escape()
effectue un encodage de pourcentage d’URL sur le str
donné d’une manière qui est optimisée pour les exigences spécifiques des chaînes de requête d’URL.
La méthode querystring.escape()
est utilisée par querystring.stringify()
et n’est généralement pas censée être utilisée directement. Elle est exportée principalement pour permettre au code d’application de fournir une implémentation de codage de pourcentage de remplacement si nécessaire en affectant querystring.escape
à une autre fonction.
querystring.parse(str[, sep[, eq[, options]]])
[Historique]
Version | Modifications |
---|---|
v8.0.0 | Plusieurs entrées vides sont désormais analysées correctement (par ex. &=&= ). |
v6.0.0 | L’objet retourné n’hérite plus de Object.prototype . |
v6.0.0, v4.2.4 | Le paramètre eq peut désormais avoir une longueur supérieure à 1 . |
v0.1.25 | Ajouté dans : v0.1.25 |
str
<string> La chaîne de requête d’URL à analysersep
<string> La sous-chaîne utilisée pour délimiter les paires clé et valeur dans la chaîne de requête. Par défaut :'&'
.eq
<string>. La sous-chaîne utilisée pour délimiter les clés et les valeurs dans la chaîne de requête. Par défaut :'='
.options
<Object>decodeURIComponent
<Function> La fonction à utiliser lors du décodage des caractères encodés en pourcentage dans la chaîne de requête. Par défaut :querystring.unescape()
.maxKeys
<number> Spécifie le nombre maximal de clés à analyser. Spécifiez0
pour supprimer les limitations de comptage de clés. Par défaut :1000
.
La méthode querystring.parse()
analyse une chaîne de requête d’URL (str
) en une collection de paires clé-valeur.
Par exemple, la chaîne de requête 'foo=bar&abc=xyz&abc=123'
est analysée en :
{
"foo": "bar",
"abc": ["xyz", "123"]
}
L’objet retourné par la méthode querystring.parse()
n’hérite pas par prototype de l’objet JavaScript Object
. Cela signifie que les méthodes Object
classiques telles que obj.toString()
, obj.hasOwnProperty()
et d’autres ne sont pas définies et ne fonctionneront pas.
Par défaut, les caractères encodés en pourcentage dans la chaîne de requête seront supposés utiliser l’encodage UTF-8. Si un encodage de caractères alternatif est utilisé, une option decodeURIComponent
alternative devra être spécifiée :
// En supposant que la fonction gbkDecodeURIComponent existe déjà...
querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, { decodeURIComponent: gbkDecodeURIComponent })
querystring.stringify(obj[, sep[, eq[, options]]])
Ajouté dans : v0.1.25
obj
<Object> L'objet à sérialiser dans une chaîne de requête URLsep
<string> La sous-chaîne utilisée pour délimiter les paires clé-valeur dans la chaîne de requête. Par défaut :'&'
.eq
<string>. La sous-chaîne utilisée pour délimiter les clés et les valeurs dans la chaîne de requête. Par défaut :'='
.options
encodeURIComponent
<Function> La fonction à utiliser lors de la conversion des caractères non sécurisés pour les URL en encodage en pourcentage dans la chaîne de requête. Par défaut :querystring.escape()
.
La méthode querystring.stringify()
produit une chaîne de requête URL à partir d'un obj
donné en itérant sur les "propriétés propres" de l'objet.
Elle sérialise les types de valeurs suivants passés dans obj
: <string> | <number> | <bigint> | <boolean> | <string[]> | <number[]> | <bigint[]> | <boolean[]> Les valeurs numériques doivent être finies. Toute autre valeur d'entrée sera convertie en chaîne vide.
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' })
// Renvoie 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':')
// Renvoie 'foo:bar;baz:qux'
Par défaut, les caractères nécessitant un encodage en pourcentage dans la chaîne de requête seront encodés en UTF-8. Si un autre encodage est requis, une autre option encodeURIComponent
devra être spécifiée :
// En supposant que la fonction gbkEncodeURIComponent existe déjà,
querystring.stringify({ w: '中文', foo: 'bar' }, null, null, { encodeURIComponent: gbkEncodeURIComponent })
querystring.unescape(str)
Ajouté dans : v0.1.25
str
<string>
La méthode querystring.unescape()
effectue le décodage des caractères URL encodés en pourcentage sur le str
donné.
La méthode querystring.unescape()
est utilisée par querystring.parse()
et il n’est généralement pas prévu de l’utiliser directement. Elle est exportée principalement pour permettre au code de l’application de fournir une implémentation de décodage de remplacement si nécessaire en assignant querystring.unescape
à une fonction alternative.
Par défaut, la méthode querystring.unescape()
tentera d’utiliser la méthode JavaScript intégrée decodeURIComponent()
pour décoder. Si cela échoue, un équivalent plus sûr qui ne lève pas d’erreur sur les URL malformées sera utilisé.