Module querystring de Node.js

Java FileModules intégrés de Node.js


querystring est un module intégré de base de Node.js, utilisé spécifiquement pour analyser et formater les chaînes de requête d'URL. Une chaîne de requête est la partie d'une URL après le point d'interrogation (?), généralement composée de paires clé-valeur, par exemple :?name=John&age=30。

Ce module est très pratique dans des scénarios tels que la transmission de données entre le front-end et le back-end et le développement d'API, aidant les développeurs à gérer facilement les paramètres d'URL.


Méthodes principales expliquées

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

Analyse une chaîne de requête en un objet JavaScript.

Description des paramètres :

  • str: La chaîne de requête à analyser
  • sep(Facultatif) : Séparateur utilisé pour délimiter les paires clé-valeur, par défaut'&'
  • eq(Facultatif) : Séparateur utilisé pour délimiter les clés et les valeurs, par défaut'='
  • options(Facultatif) : Objet de configuration
    • maxKeys: Spécifie le nombre maximal de clés à analyser, par défaut 1000
    • decodeURIComponent: Fonction utilisée pour le décodage, par défautquerystring.unescape()

Exemple de code :

Exemple

const querystring = require('querystring');

const query = 'name=John&age=30&city=New+York';
const parsed = querystring.parse(query);

console.log(parsed);
// Sortie : { name: 'John', age: '30', city: 'New York' }

querystring.stringify(obj[, sep[, eq[, options]]])

Sérialise un objet JavaScript en une chaîne de requête.

Description des paramètres :

  • obj: L'objet à sérialiser
  • sep(Facultatif) : Séparateur de paires clé-valeur, par défaut'&'
  • eq(Facultatif) : Séparateur clé-valeur, par défaut'='
  • options(Facultatif) : Objet de configuration
    • encodeURIComponent: Fonction utilisée pour l'encodage, par défautquerystring.escape()

Exemple de code :

Exemple

const querystring = require('querystring');

const obj = {
  name: 'John Doe',
  age: 25,
  occupation: 'Software Developer'
};

const stringified = querystring.stringify(obj);
console.log(stringified);
// Sortie : 'name=John%20Doe&age=25&occupation=Software%20Developer'

querystring.escape(str) et querystring.unescape(str)

Ces deux méthodes sont utilisées pour encoder et décoder les caractères spéciaux dans les chaînes de requête, respectivement.

Exemple de code :

Exemple

const querystring = require('querystring');

const str = 'Hello World!';
const escaped = querystring.escape(str);
console.log(escaped); // Sortie : 'Hello%20World%21'

const unescaped = querystring.unescape(escaped);
console.log(unescaped); // Sortie : 'Hello World!'

Scénarios d'application pratiques

1. Gestion des paramètres de requête GET

Exemple

const http = require('http');
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(`Paramètres reçus: ${JSON.stringify(params)}`);
  } else {
    res.end('Aucun paramètre de requête reçu');
  }
}).listen(3000);

2. Construction de chaînes de requête d'API

Exemple

const querystring = require('querystring');

const apiParams = {
  q: 'node.js',
  page: 1,
  limit: 10,
  sort: 'desc'
};

const apiUrl = `https://api.example.com/search?${querystring.stringify(apiParams)}`;
console.log(apiUrl);
// Sortie : 'https://api.example.com/search?q=node.js&page=1&limit=10&sort=desc'

Remarques importantes

  1. Problèmes d'encodage: Par défaut, querystring encode/décode les caractères spéciaux. Si vous devez personnaliser la méthode d'encodage, vous pouvez passerencodeURIComponentoudecodeURIComponentfonction.

  2. Types de données: Toutes les valeurs analysées sont de type chaîne et doivent être converties manuellement en d'autres types (tels que nombres, booléens, etc.).

  3. Objets imbriqués: Le module querystring ne prend pas en charge l'analyse ou la sérialisation d'objets imbriqués. Si vous devez gérer des structures de données complexes, vous pouvez envisager d'utiliser le format JSON.

  4. Caractères sûrs pour les URL: Les espaces sont encodés comme+au lieu de%20, ce qui est différent deencodeURIComponentdans le comportement.


Alternatives

Bien que le module querystring soit très pratique, les versions récentes de Node.js recommandent d'utiliser les API URL et URLSearchParams, qui offrent des fonctionnalités de gestion d'URL plus modernes et complètes.

Exemple

// Exemple d'utilisation de URLSearchParams
const params = new URLSearchParams('name=John&age=30');
console.log(params.get('name')); // Sortie : 'John'

Résumé

Le module querystring est un outil puissant pour gérer les chaînes de requête dans Node.js, particulièrement adapté au traitement de données simples de paires clé-valeur. Maîtriser ses méthodes principales (parse, stringify, escape, unescape) peut grandement améliorer l'efficacité du développement. Pour des besoins de traitement d'URL plus complexes, vous pouvez envisager d'utiliser les API URL et URLSearchParams.

Java FileModules intégrés de Node.js

Autres extensions