CodeBlanks Logo Icon CodeBlanks

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.

Başlangıç kodu

index.js
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

index.js
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

Soru
app.____("/api", router);
Cevap
app.use("/api", router);

Açıklama: app.use ile router bağlanır.

3 express.Router() ne döndürür?

index.js
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.

Orta seviye bölümündeki tüm dersler