Express JS ile uygulama geliştirirken url ile gönderilen parametrelere ihtiyacımız olabilir. Mesela bir ara sorgusu, bir ürünün IDsi, bir üyenin bilgileri gibi güvenlik açığı oluşturmayacak bilgileri kolaylıkla url üzerinden istediğimiz sayfaya gönderebiliriz.
Bu gibi bir durum olduğunda iki farklı seçenek devreye girer. Bunlar şu şekildedir.
- Url bilgisine eklenmiş bir veri, mesela ürün adı gibi,
http://domain/urun-adişeklinde bir veri olabilir. Burada urun-adi olarak belirtilen bölüm aslında bir parametre olarak verilebilir. - Sorgu parametresi olarak girilen veriler, mesela bir sehir bilgisi gibi,
http://domain?sehir=Kocaelişeklinde bir veri olabilir. Burada sehir bir değişken ve Kocaeli ise değişkenin değeridir.
Şimdi bu iki yöntemi de inceleyelim.
Express JS Url Üzerindeki Paremetre Bilgisini Alma
İlk olarak, bir url üzerine eklenmiş olan bir parametreyi nasıl Express JS ile alacağımızı görelim. Bu yöntem kullanıldığında, url bilgisinin sonuna bir değer eklenir ve sonrasında kullanılır.
http://localhost:5000/dersler/javascript
Şeklindeki bir adresimiz olsun ve bu adres üzerindeki javascript ise aslında ders değişkeninin değeri olsun. Şimdi bu bilgiye nasıl ulaşacağımızı görelim.
Öncelikle bu bilgiye ulaşabilmemiz için bir route belirlememiz gerekir. Bu route içerisinde değişkenimizi tanımlıyoruz.
app.get("/dersler/:ders", (req, res) => {
});Yukarıdaki bir tanımlama ile, dersler adında bir route tanımladık ve bu route ile bilrikte kullanılacak ders değişkenini bildirdik. Artık http://localhost:5000/dersler/ bölümünden sonra gelecek olan bir alan, app.get üzerinden ders değişkenine atanacaktır. Şimdi bir kaç örnek verelim.
- http://localhost:5000/dersler/javascript adresinde, ders değişkeninin değeri javascript olarak belirtilmiştir.
- http://localhost:5000/dersler/html adresinde, ders değişkeninin değeri html olarak belirtilmiştir.
- http://localhost:5000/dersler/express-js adresinde, ders değişkeninin değeri express-js olarak belirtilmiştir
Şimdi bu değişkenlere nasıl ulaşacağımızı görelim. Url üzerine eklenmiş değişkenlere req.params.degiskenAdi şeklinde ulaşabiliyoruz.
app.get("/dersler/:ders", (req, res) => {
const ders = req.params.ders;
console.log(ders);
// Konsola url üzerinden gönderilen
// ders adı yazdırılır.
...
});Bu kadar basit. Url bilgisine eklenmiş bir değişkene ulaşmak için req.params nesnesini kullanıyoruz.
Express JS Url Adresinden Sorgu Parametrelerini Alma
Express js get parametrelerine nasıl bakılır sorusunun cevabını ararken diğer bir yaklaşım ise, url üzerinden gönderilen değişkenlere ulaşmaktır. Bu değişkenler url sonundaki soru işaretinden (?) sonra değişken ismi ve değişken değeri olarak belirtilir. Örnek verecek olursak.
- http://localhost:5000/dersler?ders=Javascript şeklinde verilen urlde ders değişkeninin değeri javascript şeklindedir.
- http://localhost:5000/dersler?ders=html&konu=tablolar şeklinde verilen urlde ders değişkeninin değeri javascript ve konu değişkeninin değeri ise tablolar şeklindedir.
Sorgu / query parametresi olarak değişken gönderildiğinde istediğimiz değişkenleri aralarını & işareti koyarak adrese ekleyebiliriz.
Sorgu parametresi olarek gelen değişkenlere ulaşmak için req.query.degiskenAdi şeklinde bir yol izliyoruz. Tüm sorgu / query değişkenleri istek / request nesnesi üzerinde bulunan query nesnesi üzerinde tutulur.
Şimdi bir örnek verirsek. http://localhost:5000/dersler?ders=html&konu=tablolar üzerindeki değişkenlere aşağıdaki gibi ulaşabiliriz.
app.get("/dersler", (req, res) => {
const ders = req.query.ders;
const konu = req.query.konu;
console.log(ders);
// Konsola
// html
// yazılır.
console.log(konu);
// Konsola
// tablolar
// yazılır
...
});Aralarına & işareti koyarak eklemek istediğimiz değişkenleri artırabiliriz.
Sonuç
Express JS ile query parametrelerine ulaşmak için req.query nesnesini kullanırız. Yine url sonuna eklenmiş bilgilere ise req.params nesnesi ile ulaşabiliriz.
Express JS ile yaşadığınız deneyimleri bizimle paylaşır mısınız?
