CodeBlanks Logo Icon CodeBlanks

Rota parametreleri

URL parametrelerini öğrenirsin.

Rota parametreleri

Express'te bir URL'nin değişen bölümünü rota parametresi ile yakalarsın. Parametre adı iki nokta üst üste ile başlar: /users/:id. İstek /users/42 gelirse, req.params.id "42" olur.

Rota parametreleri her zaman dize olarak gelir; sayı gerekiyorsa Number(req.params.id) ile çevirirsin. Birden fazla parametre de olabilir: /posts/:postId/comments/:commentId ile req.params.postId ve req.params.commentId alınır. Bu, dinamik URL'leri tek bir rota ile işlemenin temel yoludur. Örneğin bir kullanıcı profili, bir blog yazısı veya bir ürün sayfası tek rota ile servis edilir.

req.params ile erişim

Rota parametrelerine req.params nesnesi üzerinden erişilir. /users/:id rotasında req.params.id parametrenin değerini verir. Örnek: app.get("/users/:id", (req, res) => { res.send("Kullanıcı: " + req.params.id); });.

Bu, /users/42 isteğinde "Kullanıcı: 42" yanıtı üretir. Parametre adı rotada iki nokta üst üste sonrasıdır; :id ise ad id'dir. Birden fazla parametre tanımlanabilir ve her biri req.params'te aynı adla bulunur. Bu, her kaynağı URL'den tanımlayan REST API'lerin temelidir: /users/:id tek bir kullanıcıyı, /products/:id tek bir ürünü temsil eder.

Uygulama Kullanıcı parametre rotası yaz

app.get("/users/:id", (req, res) => { res.send("Kullanıcı: " + req.params.id); }) rotası tanımla. Sunucu /users/42'ye istek yapar.

Başlangıç kodu

index.js
const express = require("express");
const app = express();

// /users/:id rotası tanımla
// parametreyi oku ve yanıt ver
// buraya yaz

const server = app.listen(3000, () => {
  const http = require("http");
  http.get("http://localhost:3000/users/42", (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();

app.get("/users/:id", (req, res) => {
  res.send("Kullanıcı: " + req.params.id);
});

const server = app.listen(3000, () => {
  const http = require("http");
  http.get("http://localhost:3000/users/42", (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
});

Beklenen çıktı

Yanıt: Kullanıcı: 42

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 /users/:id rotasında /users/7 isteği ne verir?

index.js
app.get("/users/:id", (req, res) => res.send(req.params.id))
  • req.params = {}
  • req.params.id = undefined
  • req.params.id = 7
  • req.params.id = "7" Doğru cevap

Açıklama: Parametre her zaman dize olarak gelir: "7".

2 params erişimini tamamla

Soru
app.get("/users/:id", (req, res) => {
  res.send("Kullanıcı: " + req.____.id);
});
Cevap
app.get("/users/:id", (req, res) => {
  res.send("Kullanıcı: " + req.params.id);
});

Açıklama: req.params.id ile parametre okunur.

3 Parçayı rolüne eşle

Kavram Anlamı
:id Rota parametresi tanımlar
req.params Parametre nesnesi
/users/42 Gerçek istek yolu
Number(...) Dizeyi sayıya çevirir

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