Astro ile Querystring Kullanmak
Querystring nedir?
Querystring, URL’nin sonunda yer alan ve URL’nin parametrelerini belirten bir dizedir. Querystring, URL’nin sonunda yer alan ?
karakterinden sonra başlar ve parametreler &
karakteri ile ayrılır. Her parametre, =
karakteri ile birbirinden ayrılmış bir anahtar ve değer çiftidir.
Örneğin, https://example.com/?name=John&age=30
URL’sinde, name
ve age
adında iki parametre bulunmaktadır. name
parametresinin değeri John
, age
parametresinin değeri ise 30
’dur.
Astro da Querystring için gerekenler
Astro’da, querystring için SSR (Sunucu Tarafı Rendeleme) kullanılıyor. SSR, sayfa yüklendiğinde sunucu tarafında çalışan bir JavaScript işlemidir. Bu işlem, sayfanın içeriğini oluşturur ve tarayıcıya gönderir. SSR, sayfa içeriğini oluştururken, querystring’deki parametreleri kullanabilir.
Bunu etkinleştirmek için Bu Sayfadan mevcut projenize ekleyiniz ve astro.config.mjs
dosyası içinden de output:server
veya output:hybrid
olarak ayarlayınız.
Querystring’i Astro ile kullanma
Astro’da, querystring için kullanacağımız şey bir ara uygulama (middleware) oluşturmak olacaktır. Bu ara uygulamayı oluşturmak için Astronun src/
klasörü içine middleware.ts
adında bir dosya oluşturalım ve aşağıdaki kodları ekleyelim:
Bu kodda, URL’deki querystring’i almak için URLSearchParams
sınıfını kullanıyoruz. Bu sınıf, URL’deki querystring’i almak ve işlemek için kullanılır. get
metodu ile querystring’deki parametrelerin değerlerini alabiliriz. Eğer parametre bulunmazsa, null
döner. Bu yüzden Number
fonksiyonunu kullanarak değeri sayıya çeviriyoruz. Eğer parametre bulunmazsa veya değeri sayıya çevrilemezse, sayfa numarasını 1
olarak ayarlıyoruz.
context.locals.sayfa
kısmına veri gönderdiğimizde tip hatası almaya başlayacağız o yüzden env.d.ts
dosyasına aşağıdaki kodları ekleyelim:
bu kodlar ile sayfanın içine gelecek verinin türünü belirledik.
daha sonra sayfamıza gidip sayfa
değişkenini kullanabiliriz.
şeklinde sayfa verisini konsola yazdırabiliriz.
Querystring ile sayfa numaralandırma
Örneğin, bir blog sayfasında sayfa numaralandırma yapmak istediğimizi düşünelim. Sayfa numaralandırma için querystring kullanabiliriz. Örneğin, https://example.com/blog?sayfa=2
URL’sinde, sayfa
parametresi ile sayfa numarasını belirleyebiliriz.
Bu örnekte, Astro.locals.sayfa
değişkeni ile sayfa numarasını alıyoruz ve sayfa numarasını ekrana yazdırıyoruz.
Daha fazla bilgi
Daha fazla bilgi için Astro Middleware belgelerine bakabilirsiniz.