Node.js
Özet - HTTP sunucusu
createServer, routing ve JSON'ı birleştirerek bir API yazarsın.
Özet - HTTP sunucusu
Bu grupta HTTP şunucusunun temel araçlarını öğrendin: createServer ile sunucu kurmak, req ve res ile istek ve yanıtı yönetmek, req.url ile routing yapmak, JSON.stringify ile JSON yanıtı göndermek ve new URL ile query string ayrıştırmak.
Şimdi bunları birleştirerek küçük bir API yazacaksın. API, /api yoluna JSON yanıtı verirken diğer yollara farklı bir JSON döndürecek. Bu mini görev, routing ve JSON'ın gerçek bir API'de nasıl birleştiğini gösterir.
API tasarımı
API iskeleti: bir createServer handler'ı, req.url ile routing ve JSON.stringify ile JSON yanıtı. /api yoluna bilinen bir JSON, diğer yollara farklı bir JSON gönderilir.
Akış: const server = http.createServer((req, res) => { res.setHeader("Content-Type", "application/json"); if (req.url === "/api") { res.end(JSON.stringify({ durum: "ok" })); } else { res.end(JSON.stringify({ durum: "yok" })); } });. /api isteği {"durum":"ok"} alır; başka yol {"durum":"yok"} alır. İçerik türü application/json olarak ayarlanır; böylece istemci yanıtı güvenle ayrıştırır.
Uygulama API yaz
http modülünü içe aktar. createServer ile bir server oluştur. Handler içinde res.setHeader("Content-Type", "application/json") çağır. req.url === "/api" ise res.end(JSON.stringify({ durum: "ok" })), değilse res.end(JSON.stringify({ durum: "yok" })) çağır. Altındaki hazır kod /api yoluna istek atar.
Örnek çözümü göster
const http = require("http");
const server = http.createServer((req, res) => {
res.setHeader("Content-Type", "application/json");
if (req.url === "/api") { res.end(JSON.stringify({ durum: "ok" })); }
else { res.end(JSON.stringify({ durum: "yok" })); }
});
server.listen(3000, () => {
http.get("http://localhost:3000/api", (res) => {
let body = "";
res.on("data", (c) => body += c);
res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
});
});
Kendini test et
-
API hangi parçaları birleştirir?
if (req.url === "/api") { res.end(JSON.stringify(...)); }
- Yalnızca createServer
- createServer, routing ve JSON
- Yalnızca require
- Yalnızca console.log
Cevabı göster
createServer, routing ve JSON — createServer + routing (req.url) + JSON (JSON.stringify) birleşir.
-
Aracı rolüne eşle
- createServer
- Sunucuyu oluşturur
- req.url
- Routing yapar
- JSON.stringify
- JSON yanıtı üretir
- setHeader
- İçerik türünü ayarlar
Sıradaki ders: Modül tasarımı