Node.js
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.
Örnek çözümü göster
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(); });
});
});
Kendini test et
-
/users/:id rotasında /users/7 isteği ne verir?
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"
Cevabı göster
req.params.id = "7" — Parametre her zaman dize olarak gelir: "7".
-
params erişimini tamamla
app.get("/users/:id", (req, res) => {
res.send("Kullanıcı: " + req.____.id);
});
Cevabı göster
app.get("/users/:id", (req, res) => {
res.send("Kullanıcı: " + req.params.id);
});
-
Parçayı rolüne eşle
- :id
- Rota parametresi tanımlar
- req.params
- Parametre nesnesi
- /users/42
- Gerçek istek yolu
- Number(...)
- Dizeyi sayıya çevirir
Sıradaki ders: Query parametreleri