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ć.