Routing
- Node.js kursu
- Orta seviye
- Ders 15/116
- 5 dk
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
// 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
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?
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
if (req.____ === "/") { res.end("Ana sayfa"); }
if (req.url === "/") { res.end("Ana sayfa"); }
Açıklama: req.url istek yolunu tutar.