Node.js
Query string
URL query string ayrıştırmayı öğrenirsin.
Query string
Query string (sorgu dizesi), URL'de ? işaretinden sonra gelen anahtar=değer çiftleridir. Örnek: /selam?ad=Ayşe URL'sinde ad=Ayşe bir query string'dir.
Node.js'te query string'i ayrıştırmak için new URL(req.url, taban) kullanırsın. Bu, bir URL nesnesi verir; url.searchParams.get("ad") ile bir anahtarın değerini alırsın. Örnek: const url = new URL(req.url, "http://localhost"); const ad = url.searchParams.get("ad");. taban gereklidir çünkü req.url göreli bir yoldur; tam URL olmadan URL ayrıştırılamaz. Bu, arama, filtreleme ve form parametreleri için standart yoldur.
searchParams kullanımı
URL nesnesinin searchParams özelliği bir URLSearchParams nesnesidir. .get("anahtar") ile tek bir değer alırsın; .has("anahtar") ile anahtarın varlığını kontrol edersin.
Örnek: const url = new URL("/selam?ad=Ayşe&yas=30", "http://localhost"); url.searchParams.get("ad"); sonucu Ayşe; url.searchParams.get("yas") sonucu 30. Anahtar yoksa get null döndürür. Birden çok değeri olan anahtarlar için getAll kullanılır. Bu yapı, URL parametrelerini güvenle ayrıştırmanın yerleşik yoludur; elle split yapmaktan daha güvenlidir.
Uygulama Query string'den değer oku
http modülünü içe aktar. createServer ile bir server oluştur. Handler içinde new URL(req.url, "http://localhost") ile bir url oluştur, url.searchParams.get("ad") ile ad'ı al ve res.end("Merhaba " + ad) ile yanıt ver. Altındaki hazır kod /?ad=Ayşe yoluna istek atar.
Örnek çözümü göster
const http = require("http");
const server = http.createServer((req, res) => {
const url = new URL(req.url, "http://localhost");
const ad = url.searchParams.get("ad");
res.end("Merhaba " + ad);
});
server.listen(3000, () => {
http.get("http://localhost:3000/?ad=Ayşe", (res) => {
let body = "";
res.on("data", (c) => body += c);
res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
});
});
Kendini test et
-
URL'de query string nerede bulunur?
/selam?ad=Ayşe
- ? işaretinden sonra
- Kapı numarasından sonra
- # işaretinden sonra
- Başlıkta
Cevabı göster
? işaretinden sonra — Query string ? işaretinden sonra gelir.
-
searchParams.get çağrısını tamamla
const ad = url.searchParams.____("ad");
Cevabı göster
const ad = url.searchParams.get("ad");
-
Parçayı rolüne eşle
- new URL
- URL nesnesi oluşturur
- searchParams.get
- Anahtar değerini verir
- "?"
- Query string başlangıcı
- taban
- Göreli yol için temel
Sıradaki ders: Özet - HTTP sunucusu