Query parametreleri
- Node.js kursu
- Orta seviye
- Ders 37/116
- 5 dk
req.query ile query parametrelerini öğrenirsin.
Query parametreleri
URL'in ? sonrası kısmı query parametreleri taşır. Örnek: /search?q=kitap. Express bu parametreleri req.query nesnesine ayrıştırır. req.query.q "kitap" değerini verir.
Query parametreleri rota parametrelerinden farklıdır: rota parametresi yolun bir parçasıdır (:id), query parametresi ise URL'in sonuna eklenir (?key=value). Birden fazla query parametresi & ile ayrılır: /search?q=kitap&s=yeni. Burada req.query.q ve req.query.s ayrı ayrı alınır. Query parametreleri filtreleme, sıralama ve arama gibi isteğe bağlı seçenekler için kullanılır.
Birden fazla query parametresi
URL'de birden fazla query parametresi & ile ayrılır. Örnek: /products?kategori=elektronik&sira=fiyat. Express her birini req.query'e koyar: req.query.kategori ve req.query.sira.
Query parametreleri isteğe bağlıdır; URL'de yoksa req.query'de de yoktur. Bu yüzden bir parametre var mı diye kontrol etmek iyi bir alışkanlıktır: if (req.query.sira) { ... }. Rota parametreleri ise her zaman vardır (rota eşleştiyse). Bu fark önemlidir: :id zorunlu, ?q= isteğe bağlı. API tasarımında zorunlu kimlik rota parametresi, isteğe bağlı filtreler query parametresi olur.
Uygulama Arama query rotası yaz
app.get("/search", (req, res) => { res.send("Arama: " + req.query.q); }) rotası tanımla. Sunucu /search?q=kitap'a istek yapar.
Başlangıç kodu
const express = require("express");
const app = express();
// /search rotası tanımla
// sorgu parametresini oku ve yanıt ver
// buraya yaz
const server = app.listen(3000, () => {
const http = require("http");
http.get("http://localhost:3000/search?q=kitap", (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();
app.get("/search", (req, res) => {
res.send("Arama: " + req.query.q);
});
const server = app.listen(3000, () => {
const http = require("http");
http.get("http://localhost:3000/search?q=kitap", (res) => {
let body = "";
res.on("data", (c) => body += c);
res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
});
});Beklenen çıktı
Yanıt: Arama: kitap
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 query erişimini tamamla
app.get("/search", (req, res) => {
res.send("Arama: " + req.____.q);
});
app.get("/search", (req, res) => {
res.send("Arama: " + req.query.q);
});
Açıklama: req.query.q ile sorgu parametresi okunur.
2 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
req.query |
Sorgu parametreleri |
req.params |
Rota parametreleri |
?q=kitap |
URL sorgu dizesi |
& |
Parametre ayıracı |
3 req.query ne döndürür?
/search?q=kitap&s=yeni- Parametre nesnesi Doğru cevap
- Bir dizi
- Bir dize
- Bir sayı
Açıklama: req.query bir nesne döndürür.