Express.js'de Regex Rotaları Nasıl Kullanılır?
Express.js'de rota tanımlarken sadece string değil, düzenli ifadeler (regex) de kullanabilirsin. Bu, parametreleri doğrulamak veya aynı handler'ı birden fazla yol için ayarlamak istediğinde işe yarar.
Express varsayılan olarak path-to-regexp kütüphanesini kullanarak `/order/:id` gibi kuralları otomatik olarak regex'e çeviriyor. Ama sen de doğrudan regex nesnesi tanımlayabilirsin. Bunun için string tırnak yerine eğik çizgi (/) kullan.
Örneğin, `/rest/` ve `/api/` yollarının ikisine de aynı handler'ı uygulamak istiyorsan bunu yapabilirsin:
1const handler = (req, res) => {2res.send('Rota çalıştı!');3};45app.get(/^\/(rest|api)\//, handler);Bu regex `/rest/` veya `/api/` ile başlayan tüm istekleri yakalar. Daha spesifik bir örnek: `:userId` parametresinin sadece 6 haneli bir sayı olmasını istiyorsan, rota tanımında parametre için regex kuralı ekleyebilirsin:
1app.get('/users/:userId(\\d{6})', (req, res) => {2res.send(`Kullanıcı ID: ${req.params.userId}`);3});Burada `(\\d{6})` kısmı userId'nin tam olarak 6 rakamdan oluşmasını sağlıyor. Eğer 5 haneli bir ID gönderirse, rota eşleşmeyecek ve 404 alacak.
Regex rotaları kullanmanın en büyük avantajı, karmaşık URL desenlerini kontrol altında tutabilmen. API'nin belirli formatlarda veri kabul etmesini sağlamak, yanlış parametrelerle gelen istekleri önceden filtrelemek ve kod içinde gereksiz doğrulama kontrolleri yazmaktan kurtulmak için harika bir yol.
0 yorum