Bu yazımızda, Node.js'in HTTP modülü kullanarak nasıl routing (yönlendirme) işlemleri yapabileceğimizi öğreneceğiz. Şu anki uygulamamızda, farklı URL'lere gidildiğinde hep aynı yanıtı alıyoruz. Ancak, bir web sitesinde farklı URL'ler genellikle farklı içerikler gösterir. Örneğin, /about
adresi hakkında bilgi veren bir sayfa sunarken, /api
adresi JSON verisi döndürebilir. Bu dersimizde, bu tür davranışları nasıl simüle edebileceğimizi göreceğiz.
İlk adım olarak, req.url
özelliği ile gelen URL sorgu dizgisini alıyoruz.
Daha sonra bu URL'ye göre farklı yanıtlar vermek için if-else veya switch ifadelerini kullanacağız.
Eğer URL /
(ana sayfa) ise, düz metin olarak "Ana Sayfa" yanıtı vereceğiz.
Eğer URL /products
ise, "Ürünler Sayfası" yanıtını vereceğiz.
Eğer URL /api
ise, JSON formatında veri döndüreceğiz. Örneğin, { firstName: "Emin", lastName: "Başbayan" }
gibi.
Eğer URL bu seçeneklerle eşleşmiyorsa, 404 durum kodu ile "Sayfa bulunamadı!" mesajını döndüreceğiz.
const http = require("node:http");
const fs = require("node:fs");
const server = http.createServer((req, res) => {
if (req.url === "/") {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Home Page");
} else if (req.url === "/products") {
res.writeHead(200, { "Content-Type": "text/plain" });
res.end("Products Page");
} else if (req.url === "/api") {
res.writeHead(200, { "Content-Type": "application/json" });
res.end(
JSON.stringify({
firstName: "Emin",
lastName: "Başbayan",
})
);
} else {
res.writeHead(404);
res.end("Page not found!");
}
});
server.listen(3000, () => {
console.log("Server running on port 3000");
});
Bu basit örnekle, Node.js'in HTTP modülü kullanarak nasıl temel routing işlemleri yapabileceğimizi gördük. Ayrıca, req.method
özelliği ile HTTP metodlarına (GET, POST, PUT, DELETE) göre de farklı işlemler yapabiliriz. Gerçek dünya uygulamalarında genellikle bu tür işlemler için web çatıları (frameworks) kullanılır. İlerleyen derslerde bu tür çatıları ve daha karmaşık routing işlemlerini inceleyeceğiz. Bu yazı, HTTP modülü ile temel routing işlemlerinin nasıl yapılabileceğine dair bir giriş niteliğindedir.