How to work with URLs in Node.js
Working with URLs is essential for building web applications, APIs, and handling HTTP requests in Node.js.
As the creator of CoreUI, a widely used open-source UI library, and with over 11 years of experience in software development, I’ve built countless Node.js applications that require robust URL parsing and manipulation.
The most effective approach is using Node.js’s built-in URL class, which provides a complete API for parsing, constructing, and modifying URLs.
This modern approach handles edge cases and follows web standards correctly.
Use the built-in URL class to parse and manipulate URLs with full support for all URL components.
const url = new URL('https://api.example.com/users?page=1&limit=10')
console.log(url.hostname) // 'api.example.com'
console.log(url.pathname) // '/users'
console.log(url.searchParams.get('page')) // '1'
The URL constructor creates a URL object that provides access to all URL components including protocol, hostname, pathname, search parameters, and hash. The searchParams property returns a URLSearchParams object that offers methods like get(), set(), append(), and delete() for working with query parameters. This approach is more reliable than manual string manipulation and handles encoding/decoding automatically.
Best Practice Note:
This is the same approach we use in CoreUI’s Node.js backend services for handling API endpoints and routing. The URL class also supports relative URLs when provided with a base URL as the second argument, making it perfect for building dynamic URLs in web applications.



