CodeBlanks Logo Icon CodeBlanks

Query parametreleri

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

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

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

Soru
app.get("/search", (req, res) => {
  res.send("Arama: " + req.____.q);
});
Cevap
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?

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

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