Skip to content

Latest commit

 

History

History
60 lines (40 loc) · 2.22 KB

File metadata and controls

60 lines (40 loc) · 2.22 KB

🐢 Node.js

🌟 Les différents modules core

URL (API WHATWG)

Implémentation de l’API URL du navigateur. Par défaut disponible sur le namespace Global comme pour les timers. URL est vraiment pratique pour la création et manipulation d’URL (comme pour path beaucoup de développeurs peu expérimentés vont construire des solutions maison alors que cet API leur permettrait de faire ce qu’ils souhaitent très simplement).

À mon goût cela devrait être beaucoup plus utilisé (même pour déclarer et identifier une URL dans un code JavaScript). L’évolution et la maintenance des codes n’en seront que bien plus simple.

const myURL = new URL("https://example.org/?abc=123");
console.log(myURL.searchParams.get("abc"));
// Prints 123

myURL.searchParams.append("abc", "xyz");
console.log(myURF.href);
// Prints https://example.org/?abc=132&abc=xyz

myURL.searchParams.delete("abc");
myURL.searchParams.set("a", "b");
console.log(myURL.href);
// Prints https://example.org/?a=b

Le constructeur s’occupera de valider l’URL pour vous (une erreur sera throw s’il l’URL n’est pas valide). Vous pourrez ensuite récupérer toutes les informations que vous souhaitez sur votre URL (protocol, username, password, hostname, port, pathname, query etc).

URL peut être aussi utilisé en ESM avec import.meta.url pour remplacer __dirname.

import { readFileSync } from "node:fs";

const buffer = readFileSync(new URL("./data.proto", import.meta.url));

Bonus: How to migrate from querystring to URLSearchParams in Node.js

URL.parse

// Avant
let url = null;
try {
  url = new URL(input, base);
} catch {}

// Après
const url = URL.parse(input, base);

Liens


⬅️ 🌟 Les différents modules core: Timers | ➡️ 🌟 Les différents modules core: OS