jsrosetta

Thư viện chuẩn

Parse URL

WHATWG URL của Node.js so với net/url (Go), crate url (Rust), URLComponents (Swift) và java.net.URI (Java): lấy scheme, user info, port, path và query.

Phiên bản tối thiểu
Node.js ≥ 12.20Go ≥ 1.0Rust ≥ 1.63Swift ≥ 4.0Java ≥ 25
Đã chạy thử trên
Node.js 24.12.0Go 1.27.1Rust 1.98.1Swift 6.2.4Java 25.0.4.1

Code Node.js là ES module: lưu file .mjs hoặc đặt "type": "module" trong package.json.

Cả năm ngôn ngữ đều parse URL thành các phần riêng: scheme, user info, host, port, path, query. Node.js dùng class URL toàn cục (chuẩn WHATWG); Go trả về một struct *url.URL với field và method tương ứng. Rust không có URL parser trong std nên dùng crate url (cùng nhóm servo, cũng theo chuẩn WHATWG như Node.js). Swift dùng URLComponents của Foundation. Java dùng java.net.URI có sẵn — nhưng không có sẵn hàm parse query string thành map như bốn ngôn ngữ kia.

Tách URL thành các phần

const urlstr = 'http://bob:secret@sub.example.com:8080/somepath?foo=bar'
 
const parsed = new URL(urlstr)
console.log(parsed.protocol) // http:
console.log(`${parsed.username}:${parsed.password}`) // bob:secret
console.log(parsed.port) // 8080
console.log(parsed.hostname) // sub.example.com
console.log(parsed.pathname) // /somepath
console.log(Object.fromEntries(parsed.searchParams)) // { foo: 'bar' }

Tham khảo: github.com/miguelmota/golang-for-nodejs-developers#url-parse