Günümüzde web uygulamaları, modern web etkileşimlerinin temel işlevini oluşturdukları için, istemcileri ve sunucuları arasında veri alışverişi gerektirir. Ancak, geliştiriciler artık bu gereksinimi karşılamak için NodeJS kütüphanesi olan ExpressJS'yi kullanabilirler.
Size Apidog'u tanıtıyoruz - çok sayıda programlama dilinde kod oluşturma yeteneklerine sahip, güçlü, basit ama sezgisel bir API geliştirme platformu.
Apidog'un JavaScript dışında geliştiricilere hangi dillerde destek sağlayabileceğini öğrenmek için aşağıdaki butona tıklayın!
NodeJS Express GET isteklerine dalmadan önce, "NodeJS Express GET İstekleri" ifadesinin etrafında dönen kavramları anlamalıyız.
NodeJS Nedir?
NodeJS, Chrome'un V8 JavaScript'i üzerine kurulu bir çalışma zamanı ortamı sunarak JavaScript gelişimini temelden değiştiren, açık kaynaklı, platformlar arası bir çalışma zamanı ortamıdır. NodeJS, Javascript kodunun tarayıcılar dışında yürütülmesini sağlar ve sunucu tarafı geliştirme için birçok olasılık sunar.

NodeJS Temel Özellikleri
JavaScript
NodeJS'den önce, geliştiriciler ön uç (JavaScript) ve arka uç (Python ve Java gibi diller) geliştirme için farklı dilleri kullanıyorlardı. NodeJS, Chrome'un V8 JavaScript motorunu kullanarak JavaScript'in sunucu tarafında çalışmasına izin vererek bu engeli ortadan kaldırır. Bu, hem ön uç hem de arka uç geliştirme için tek bir dil anlamına gelir ve potansiyel olarak geliştirme süresini azaltır ve daha birleşik bir kod tabanını teşvik eder.
Olay Odaklı Mimari
NodeJS, eşzamansız, engellemeyen G/Ç modeliyle parlar. Bu, birden fazla eşzamanlı bağlantıyı verimli bir şekilde yönetmek için bir olay döngüsü kullandığı anlamına gelir. Geleneksel bir web sunucusunun, başka bir isteği işlemeden önce bir veritabanı sorgusunun bitmesini beklediğini hayal edin. Ancak NodeJS, veritabanı yanıtını beklerken diğer istekleri işleyebilir. Bu olay odaklı yaklaşım, NodeJS'yi sohbet uygulamaları veya gerçek zamanlı işbirliği araçları gibi yüksek hacimli eşzamanlı bağlantılarla ilgilenen uygulamalar için ideal hale getirir.
Yüksek Ölçeklenebilir
NodeJS'nin kendisi tek bir iş parçacığında çalışsa da, olay döngüsü ve eşzamansız programlama stili sayesinde dikkate değer bir ölçeklenebilirlik elde eder. Olay döngüsü, gelen istekleri ve görevleri verimli bir şekilde yöneterek sunucunun duyarlı kalmasını sağlar. Yüksek talep gören uygulamalar için NodeJS, trafiğin büyük hacimlerini işleme yeteneğini daha da artırarak birden fazla işlemde kümelenebilir.
Hızlı Performans
NodeJS, özellikle G/Ç'ye bağlı görevler için olağanüstü performansı ile bilinir. Bunun nedeni, engellemeyen G/Ç modeli ve V8 JavaScript motorunun verimliliğidir. NodeJS, hızdan ödün vermeden çok sayıda eşzamanlı bağlantıyı yönetmede mükemmeldir, bu da onu gerçek zamanlı uygulamalar ve veri akışı için uygun hale getirir.
Zengin Ekosistem ve NPM
NodeJS topluluğu geniş ve aktiftir, Node Package Manager (NPM) aracılığıyla sunulan önceden oluşturulmuş modüllerin gelişen bir ekosistemini teşvik eder. NPM, uygulamalar oluştururken geliştiricilere zaman ve çaba kazandıran, çeşitli görevler için işlevsellik sağlayan büyük bir açık kaynak paket deposuna sahiptir. Veritabanlarını, dosya sistemlerini, kimlik doğrulamasını veya web kazımayı yönetmeniz mi gerekiyor? Muhtemelen bunun için bir NPM paketi vardır.
Çapraz Platform Uyumluluğu
NodeJS uygulamaları doğası gereği çapraz platformdur. Windows'ta yazılan kod, değişiklik yapmadan Linux veya macOS'ta sorunsuz bir şekilde çalışabilir. Bu, geliştiriciler için büyük bir avantajdır, çünkü farklı işletim sistemleri için kodu yeniden yazma ihtiyacını ortadan kaldırır.
Gerçek Zamanlı Uygulamalar
NodeJS'nin olay odaklı doğası ve eşzamansız programlama stili, onu gerçek zamanlı uygulamalar oluşturmak için ideal bir seçim haline getirir. Bu uygulamalar, istemci ve sunucu arasında sürekli iki yönlü iletişim gerektirir ve NodeJS, bu iletişim akışını verimli bir şekilde yönetmede mükemmeldir, gerçek zamanlı sohbet, işbirliğine dayalı düzenleme ve canlı veri güncellemeleri gibi özellikleri etkinleştirir.
Mikroservis Mimarisi
NodeJS uygulamalarının modüler yapısı, mikroservis mimarisiyle iyi uyum sağlar. Mikroservisler, bir uygulamayı birbiriyle iletişim kuran daha küçük, bağımsız hizmetlere ayırır. NodeJS'nin hafif ve ölçeklenebilir yapısı, bu mikroservisleri oluşturmak için uygun hale getirerek modülerliği ve karmaşık uygulamaların daha kolay bakımını teşvik eder.
Express Nedir?
Daha çok ExpressJS olarak bilinen Express, geliştiriciler için sağlam bir özellik kümesi sağlayan, minimal ve esnek bir NodeJS web uygulaması çerçevesidir. ExpressJS, NodeJS üzerine web uygulamaları ve API'ler oluşturma sürecini basitleştiren ve kolaylaştıran güçlü bir araç kutusu olarak düşünülebilir.

ExpressJS Temel Özellikleri
Yapılandırılmış Yaklaşım
ExpressJS, web uygulamanızın kodunu düzenlemek için iyi tanımlanmış bir yapı sağlar. Rotalar, ara yazılım ve şablon oluşturma gibi kavramları tanıtarak bakımı ve netliği teşvik eder. Bu yapı, sizin ve diğer geliştiricilerin kod tabanını anlamasını ve gezinmesini kolaylaştırır.
Yönlendirme
Web uygulamalarının temel bir işlevi, URL'lere göre istekleri işlemektir. ExpressJS, belirli URL'leri (örneğin, "/home" veya "/products/:id") uygulamanızdaki ilgili işleyici işlevlerine eşleyen rotalar tanımlamanıza olanak tanır. URL ve istek işleme mantığı arasındaki bu net ayrım, kodunuzu daha düzenli ve anlaşılması kolay hale getirir.
Ara Yazılım
Ara yazılım işlevleri, ExpressJS'de güçlü bir kavramdır. Bu işlevler, istek-yanıt döngüsüne çeşitli aşamalarda takılabilen aracı gibi davranır. Ara yazılım, aşağıdakiler dahil olmak üzere çok çeşitli görevleri gerçekleştirebilir:
- Hata ayıklama ve izleme amaçları için istekleri kaydetme.
- Gelen isteklerden veri ayrıştırma (örneğin, bir form gönderiminden JSON verileri).
- Uygulamanızı güvence altına almak için kimlik doğrulama işleme.
- Görüntüler veya CSS dosyaları gibi statik varlıkları sunmak için statik dosya sunma.
Birden fazla ara yazılım işlevini birbirine zincirleyerek, özel ihtiyaçlarınıza uygun modüler ve esnek bir uygulama akışı oluşturabilirsiniz.
Şablon Oluşturma
Dinamik web sayfaları genellikle verilere dayalı olarak HTML içeriği oluşturmayı gerektirir. ExpressJS, Pug (eski adıyla Jade) veya EJS gibi çeşitli şablon oluşturma motorlarıyla entegre olur. Bu şablon oluşturma motorları, dinamik veriler için yer tutucularla HTML şablonları tanımlamanıza olanak tanır. ExpressJS, verilerinizi istemciye gönderilen son HTML yanıtını oluşturmak için şablonlarla sorunsuz bir şekilde entegre eder. Bu, dinamik web sayfaları oluşturma sürecini basitleştirir.
Esneklik ve Özelleştirme
ExpressJS yapılandırılmış bir yaklaşım sağlarken, esnek olacak şekilde tasarlanmıştır. Geliştirme sürecinizi hafif ve verimli tutarak, projeniz için yalnızca ihtiyacınız olan özellikleri kullanmayı seçebilirsiniz. Ayrıca, geniş Node.js ekosistemi, belirli ihtiyaçlar için işlevselliğini genişletmek üzere ExpressJS ile entegre edilebilen çok sayıda üçüncü taraf ara yazılım ve kitaplık sunar. Bu, ExpressJS'yi web uygulamanızın benzersiz gereksinimlerine uyacak şekilde uyarlamanıza olanak tanır.
Hata İşleme
ExpressJS, istek işleme sırasında meydana gelen hataları işlemek için yerleşik mekanizmalar sağlar. Bu, beklenmedik durumları zarif bir şekilde ele almak ve kullanıcılara veya günlük kaydı amaçları için bilgilendirici hata mesajları sağlamak için özel hata işleyicileri tanımlamanıza olanak tanır.
Test Desteği
ExpressJS uygulamalarının modüler yapısı, ara yazılım yaklaşımıyla birlikte, onları birim testine uygun hale getirir. Kod kalitesini ve bakımı teşvik ederek, bireysel bileşenleri ve ara yazılım işlevlerini yalıtımda test etmek için çeşitli test çerçeveleri kullanılabilir.
Geniş Topluluk ve Kaynaklar
ExpressJS, geniş ve aktif bir geliştirici topluluğundan yararlanır. Bu, her deneyim seviyesindeki geliştiricilere yardımcı olabilecek kapsamlı dokümantasyon, eğitimler ve çevrimiçi kaynaklara dönüşür. Ek olarak, topluluk tarafından bakımı yapılan çok sayıda ara yazılım ve kitaplık mevcuttur ve bu da geliştirme deneyimini daha da zenginleştirir.
NodeJS Express GET İstekleri Nasıl Yapılır?
Birkaç kısa ve basit adımda NodeJS Express kullanarak GET istekleri oluşturmaya nasıl başlayabileceğinizi öğrenmek için bu bölümü takip edin!
Adım 1 - Express'i Yükleyin
Henüz Express yüklü değilse, bunu npm, yarn veya Shell kullanarak yapabilirsiniz:
npm install express
Adım 2 - Bir Sunucu Oluşturun
İşte bir ExpressJS uygulaması için temel bir yapı:
const express = require('express');
const app = express();
// Buraya rotalarınız ve mantığınız
const port = process.env.PORT || 3000; // Port için ortam değişkenini kullanın veya varsayılan olarak 3000'e ayarlayın
app.listen(port, () => console.log(`Sunucu ${port} portunda dinliyor`));
Adım 3 - Bir GET Rotası Tanımlayın
Belirli bir yola GET isteklerini işleyen bir rota tanımlamak için app.get()
yöntemini kullanın. İki argüman alır:
- Yol (örneğin,
/users
) - İsteği ve yanıtı işleyen bir geri çağırma işlevi:
app.get('/users', (req, res) => {
// /users uç noktasına GET isteğini işle
res.send('Kullanıcılar uç noktasından merhaba!');
});
Bu örnekte, /users
yoluna yapılan herhangi bir GET isteği, basit bir yanıt gönderen geri çağırma işlevini tetikleyecektir.
Adım 4 - GET Verilerine Erişim
Geri çağırma işlevindeki istek nesnesi (req
), istekle birlikte gönderilen parametreler dahil olmak üzere istek hakkında bilgi sağlar. Bunlara nasıl erişileceği aşağıdadır:
- Sorgu Parametreleri:
req.query
nesnesi aracılığıyla erişilebilir. Örneğin,/users?name=John
adresine yapılan bir GET isteği,req.query.name
değerini"John"
olarak ayarlayacaktır. - Yol Parametreleri: Rota yolunda desenler kullanılarak tanımlanır (örneğin,
/users/:id
). Bunlarareq.params
nesnesindeki ilgili anahtarı kullanarak erişebilirsiniz.
Adım 5 - İsteğe Yanıt Verme
Yanıt nesnesi (res
), istemciye bir yanıt göndermenizi sağlar. İşte bazı yaygın yöntemler:
res.send()
: Basit bir metin yanıtı gönderir.res.json()
: Bir JSON yanıtı gönderir.res.sendFile()
: Statik bir dosya gönderir.
Rotalarınızı tanımladıktan sonra sunucunuzu app.listen()
çağırarak başlatmayı unutmayın.
Apidog - Kod Oluşturma ile Express GET İsteklerini Hızlandırın
Uygulama geliştirmenizin bir sonraki aşamasına hızla ilerlemek için, JavaScript programlama dili için bir kod oluşturma özelliğine sahip kapsamlı bir API geliştirme platformu olan Apidog'u kullanmayı düşünebilirsiniz.

JavaScript istemci kodunu yalnızca birkaç tıklamayla nasıl oluşturabileceğinize bir göz atalım.
Apidog ile Uygulamanız İçin Hızlıca JavaScript Kodu Oluşturun
Bu bölüm, uygulamanız için JavaScript (veya mevcut diğer programlama dilleri) kodu nasıl oluşturabileceğinizi vurgulayacaktır.

İlk olarak, ekranın sağ üst köşesinde bulunan </>
düğmesini bulun. Düğmeyi bulmakta zorlanıyorsanız, yukarıdaki resme bakabilirsiniz.

İhtiyacınız olan istemci tarafı programlama dilini seçerek devam edin. Hangi JavaScript kütüphanesini daha rahat kullandığınızı seçme gücüne sahipsiniz.
Tek yapmanız gereken kodu IDE'nize kopyalayıp yapıştırmak ve NodeJS uygulamanıza uyduğundan emin olmak için düzenlemeye devam etmek! Ancak, yukarıdaki resimde gösterildiği gibi Unirest kullanmak istiyorsanız, buradaki makaleye başvurabilirsiniz:

Apidog ile API'leri Test Edin
Apidog, geliştiricilere API'lerde hata ayıklama için rahat ama güzel bir kullanıcı arayüzü sağlar.

Yukarıdaki resimde okla vurgulanan çubuğa API uç noktasını sağlayın.
Bir URL'de birden fazla parametre kullanma konusunda emin değilseniz, bu makale, daha büyük veri kümelerindeki tam kaynağa nasıl ulaşacağınız konusunda size rehberlik edebilir!


API'nizden emin olduktan sonra, isteği API'ye gönderen Gönder
'e tıklayabilirsiniz. Eksiksiz bir yanıt beklemelisiniz. Durum koduna bir bakış, başarılı olup olmadığını gösterir. Ayrıca, kodunuzun API'nin sunucularından gelen bilgileri anlaması gereken tam veri yapısını gösteren ham yanıtı da inceleyebilirsiniz.
Sonuç
Express ile NodeJS, olay odaklı, engellemeyen G/Ç'nin verimliliğinden yararlanan güçlü web uygulamaları oluşturmanıza olanak tanır. Express, GET isteklerine (ve diğer HTTP yöntemlerine) yanıt veren rotaları tanımlamanın temiz ve öz bir yolunu sağlar. Sorgu dizeleri veya yol parametreleri gibi, istekle birlikte gönderilen verileri işlemek için işlevler oluşturabilirsiniz.
Bu, istemci tarafından bilgi toplayarak dinamik ve etkileşimli web deneyimleri oluşturmanızı sağlar. Express'te GET isteklerini nasıl tanımlayıp işleyeceğinizi anlayarak, sağlam NodeJS uygulamaları oluşturmak için temel bir yapı taşının kilidini açtınız.