Poznajemy stary i nowy sposób na parsowanie URLów, co przyda się nam, gdy będziemy tworzyli serwer. Do dzieła.

Najpierw stary sposób:

var url = require('url');

var addr = "https://www.codeline.site/";
var parsed = url.parse(addr);


console.log(parsed);

// Url {
//     protocol: 'https:',
//     slashes: true,
//     auth: null,
//     host: 'www.codeline.site',
//     port: null,
//     hostname: 'www.codeline.site',
//     hash: null,
//     search: null,
//     query: null,
//     pathname: '/',
//     path: '/',
//     href: 'https://www.codeline.site/'
//   }

Teraz nowy, który w dodatku działa poza node i jest mega przydatny:

var parsed = new URL("https://www.codeline.site/");


console.log(parsed);

// URL {
//     href: 'https://www.codeline.site/',
//     origin: 'https://www.codeline.site',
//     protocol: 'https:',
//     username: '',
//     password: '',
//     host: 'www.codeline.site',
//     hostname: 'www.codeline.site',
//     port: '',
//     pathname: '/',
//     search: '',
//     searchParams: URLSearchParams {},
//     hash: ''
//   }

Zobaczmy, jak działają searchParams:

const myURL = new URL('https://example.org/subfolder/subfolder/index.html?q=blablabla');

console.log(myURL);
// URL {
//     href: 'https://example.org/subfolder/subfolder/index.html?q=blablabla',
//     origin: 'https://example.org',
//     protocol: 'https:',
//     username: '',
//     password: '',
//     host: 'example.org',
//     hostname: 'example.org',
//     port: '',
//     pathname: '/subfolder/subfolder/index.html',
//     search: '?q=blablabla',
//     searchParams: URLSearchParams { 'q' => 'blablabla' },
//     hash: ''
//   }

console.log(myURL.searchParams.get("q"));
//blablabla

Search Params możemy także ustawiać:

const myURL = new URL('https://example.org/subfolder/index.html');

myURL.searchParams.set("q", "Searched term");
myURL.searchParams.set("page", "12");

console.log(myURL.href);
//https://example.org/subfolder/index.html?q=Searched+term&page=12

Poza node.js klasa URL jest również dostępna i polecam z niej korzystać.