Node.js
express.Router
express.Router ile modüler routing öğrenirsin.
express.Router ile modüler routing
express.Router() bir router nesnesi oluşturur. Router, app gibi rota ekleyebilir ama app.use ile belirli bir önek altında bağlanır. Bu, rotaları ayrı dosyalara bölmeyi sağlar.
Örnek: const router = express.Router(); router.get("/hello", handler); app.use("/api", router);. Bu, /api/hello isteğini işler. Router, app.get yerine router.get kullanır. Birden fazla router'ı farklı öneklerle bağlayarak büyük bir API'yi modüllere ayırabilirsin: kullanıcı router'ı /api/users, ürün router'ı /api/products altında. Her router ayrı bir dosyada tanımlanır ve ana uygulamada bağlanır. Bu, kodun düzenli kalmasını sağlar.
Router'ı bağlama
Bir router'ı app.use(öneki, router) ile bağlarsın. Örnek: app.use("/api", router). Bundan sonra router'daki tüm rotalar /api önekiyle erişilebilir olur. router.get("/hello", ...) rotası /api/hello isteğini işler.
Router içindeki yollar öneksiz yazılır. router.get("/hello") yazarsın, router.get("/api/hello") değil. Express, isteği router'a iletirken öneki çıkarır. Bu, router'ı önekten bağımsız kılar: aynı router'ı /api veya /v2 altında bağlayabilirsin, router'ın içindeki kod değişmez. Bu esneklik, API sürümleme gibi desenleri kolaylaştırır.
Uygulama Router ile modüler rota yaz
const router = express.Router() tanımla. router.get("/hello", (req, res) => res.send("Merhaba")) ekle. app.use("/api", router) ile bağla. Sunucu /api/hello'ya istek yapar.
Örnek çözümü göster
const express = require("express");
const app = express();
const router = express.Router();
router.get("/hello", (req, res) => res.send("Merhaba"));
app.use("/api", router);
const server = app.listen(3000, () => {
const http = require("http");
http.get("http://localhost:3000/api/hello", (res) => {
let body = "";
res.on("data", (c) => body += c);
res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
});
});
Kendini test et
-
Parçayı rolüne eşle
- express.Router()
- Router nesnesi oluşturur
- router.get
- Router'a rota ekler
- app.use('/api', router)
- Router'ı bağlar
- /api/hello
- Tam istek yolu
-
router mount çağrısını tamamla
app.____("/api", router);
Cevabı göster
app.use("/api", router);
-
express.Router() ne döndürür?
const router = express.Router();
- Bir dize
- Bir router nesnesi
- Bir sayı
- Bir dizi
Cevabı göster
Bir router nesnesi — express.Router() bir router nesnesi döndürür.
Sıradaki ders: Rota grupları