CodeBlanks Logo Icon CodeBlanks

Routing

Basit URL routing mantığını öğrenirsin.

Routing

Routing (yönlendirme), istek yoluna (req.url) göre farklı yanıtlar vermektir. En basit yol if koşullarıyla yolu kontrol etmektir.

Örnek: if (req.url === "/") { res.end("Ana sayfa"); } else if (req.url === "/bilgi") { res.end("Bilgi"); } else { res.end("Bilinmeyen"); }. Burada req.url istek yolunu verir; her yol farklı bir yanıt üretir. else dalı bilinmeyen yollar için yedek (fallback) yanıtı sağlar. Bu, Express gibi çerçevelerin arka planda yaptığı işin sadeleştirilmiş halidir; çerçeveler yolu daha düzenli bir tabloyla eşleştirir.

Bilinmeyen yollar

Routing'te her zaman bir else dalı bulundurmak iyi bir alışkanlıktır. Bu dal, eşleşmeyen yollar için yedek yanıt verir; böylece istek askıda kalmaz.

Örnek: if (req.url === "/") { res.end("Ana sayfa"); } else { res.end("Bilinmeyen yol"); }. /bilgi isteği Bilinmeyen yol yanıtını alır. Genellikle bilinmeyen yollar için 404 durumu da ayarlanır: res.statusCode = 404; then res.end("Bulunamadı"). Bu, kullanıcıya yolun geçersiz olduğunu açıkça söyler. statusCode yanıtın HTTP durum kodudur; 200 başarılı, 404 bulunamadı demektir.

Uygulama İki yollu routing yaz

http modülünü içe aktar. createServer ile bir server oluştur. Handler içinde req.url'yi kontrol et: "/" ise res.end("Ana sayfa"), değilse res.end("Bilinmeyen") çağır. Altındaki hazır kod sunucuyu başlatır ve "/" yoluna istek atar.

Başlangıç kodu

index.js
// http modülünü içe aktar ve server oluştur
// buraya yaz

server.listen(3000, () => {
  http.get("http://localhost:3000/", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
});

Örnek çözüm

index.js
const http = require("http");
const server = http.createServer((req, res) => {
  if (req.url === "/") { res.end("Ana sayfa"); }
  else { res.end("Bilinmeyen"); }
});

server.listen(3000, () => {
  http.get("http://localhost:3000/", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
});

Beklenen çıktı

Yanıt: Ana sayfa

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Basit routing hangi özellik üzerinden yapılır?

index.js
if (req.url === "/x") { ... }
  • req.method
  • res.end
  • req.url Doğru cevap
  • server.listen

Açıklama: req.url istek yolunu verir; routing buna yapılır.

2 Yolu yanıta eşle

Kavram Anlamı
"/" Ana sayfa
"/bilgi" Bilgi
else Bilinmeyen
req.url İstek yolu

3 Routing koşulunu tamamla

Soru
if (req.____ === "/") { res.end("Ana sayfa"); }
Cevap
if (req.url === "/") { res.end("Ana sayfa"); }

Açıklama: req.url istek yolunu tutar.

Orta seviye bölümündeki tüm dersler