Query string
- Node.js kursu
- Orta seviye
- Ders 17/116
- 5 dk
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.
Başlangıç kodu
// http modülünü içe aktar ve server oluştur
// buraya yaz
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(); });
});
});Örnek çözüm
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(); });
});
});Beklenen çıktı
Yanıt: Merhaba Ayşe
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 URL'de query string nerede bulunur?
/selam?ad=Ayşe- ? işaretinden sonra Doğru cevap
- Kapı numarasından sonra
- # işaretinden sonra
- Başlıkta
Açıklama: Query string ? işaretinden sonra gelir.
2 searchParams.get çağrısını tamamla
const ad = url.searchParams.____("ad");
const ad = url.searchParams.get("ad");
Açıklama: get bir anahtarın değerini verir.
3 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
new URL |
URL nesnesi oluşturur |
searchParams.get |
Anahtar değerini verir |
"?" |
Query string başlangıcı |
taban |
Göreli yol için temel |