Node.js
URL.resolve
URL.resolve ile göreceli URL çözümlemeyi öğrenirsin.
Göreceli URL çözümleme
Bir sayfada "/alt" gibi göreceli (relative) bir bağlantı bulduğunda tarayıcı onu tam adrese çevirir. Buna URL çözümleme denir. Node.js'te new URL(relative, base) ile yaparsın.
Örnek: new URL("alt", "https://example.com/ana") sonucu https://example.com/alt'tır. new URL("../kardes", "https://example.com/a/b/c") sonucu https://example.com/a/kardes'tir. base ikinci parametredir; göreceli yol buna göre çözülür. Eski Node.js sürümlerinde url.resolve(base, relative) işlevi vardı; ama bu kaldırılmıştır. Yeni kodda her zaman new URL(relative, base) kullan. Bu yöntem, bir sayfadaki göreceli bağlantıları taramak (crawl) veya bir API kökünden (base) üç noktalar (endpoint) kurmak için kullanışlıdır.
Taban ve göreceli etkileşimi
Çözümleme sonucu, tabanın (base) son yol bileşenini göreceli yolun (relative) değiştirmesiyle oluşur. "./" aynı dizini, "../" üst dizini, "/" kökü ifade eder.
Örnekler: new URL("./x", "https://example.com/a/b") → https://example.com/a/x; new URL("../x", "https://example.com/a/b") → https://example.com/x; new URL("/x", "https://example.com/a/b") → https://example.com/x. Eğer göreceli yol https:// gibi bir protokol içeriyorsa taban yok sayılır; mutlak URL doğrudan kullanılır. Bu davranış tarayıcıdaki <a href> mantığıyla aynıdır. Bir sitenin tüm bağlantılarını tek bir tabandan çözümlemek, özelliği tutarlı yapar.
Uygulama Göreceli URL'yi çözümle
const base = "https://example.com/ana/sayfa"; tanımla. const resolved = new URL("alt", base); ile göreceli yolu çöz. console.log(resolved.href) ile sonucu yazdır.
Örnek çözümü göster
const base = "https://example.com/ana/sayfa";
const resolved = new URL("alt", base);
console.log(resolved.href);
Kendini test et
-
Göreceli bir URL'yi çözümlemenin modern yolu hangisidir?
new URL("alt", "https://example.com/ana")
- new URL(relative, base)
- url.resolve(base, rel)
- url.parse(rel)
- path.join(base, rel)
Cevabı göster
new URL(relative, base) — new URL(relative, base) modern ve önerilen yoldur.
-
Göreceli yolu anlamına eşle
- ./x
- Aynı dizin
- ../x
- Üst dizin
- /x
- Kök dizin
- https://...
- Mutlak (taban yok sayılır)
-
Çözümleme çağrısını tamamla
const resolved = new URL(____, base);
Cevabı göster
const resolved = new URL("alt", base);
Sıradaki ders: querystring