express.Router
- Node.js kursu
- Orta seviye
- Ders 38/116
- 5 dk
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.
Başlangıç kodu
const express = require("express");
const app = express();
// bir router nesnesi oluştur
// router'a /hello rotası ekle, "Merhaba" gönder
// router'ı /api altında bağla
// buraya yaz
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(); });
});
});Örnek çözüm
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(); });
});
});Beklenen çıktı
Yanıt: Merhaba
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
express.Router() |
Router nesnesi oluşturur |
router.get |
Router'a rota ekler |
app.use('/api', router) |
Router'ı bağlar |
/api/hello |
Tam istek yolu |
2 router mount çağrısını tamamla
app.____("/api", router);
app.use("/api", router);
Açıklama: app.use ile router bağlanır.
3 express.Router() ne döndürür?
const router = express.Router();- Bir dize
- Bir router nesnesi Doğru cevap
- Bir sayı
- Bir dizi
Açıklama: express.Router() bir router nesnesi döndürür.