Expressjs, Nodejs tabanlı web uygulamaları için bir framework'tür ve asenkron işlemlerin yönetimine özel olarak hazırlanmıştır Async ve await yapıları, JavaScript'te asenkron işlemleri yönetmek için kullanılan bir yapıdır ve Expressjs ile kullanarak web uygulamalarımızın performansını arttırabiliriz Async fonksiyonlar, await ifadesi içerdiği için yürütmesi asenkron olarak gerçekleştirilir ve bir Promise döndürürler Expressjs uygulamasında async ve await yapılarını kullanarak verileri çağırmak, HTTP isteklerine bağlı olarak değişkenlik gösterir ve sıralı ve birbirine bağımlı olan işlemlerin yönetimini kolaylaştırır Bu yapılar, kodu daha anlaşılır hale getirerek bakım ve geliştirme süreçlerinde de kolaylık sağlar Örnek bir Expressjs uygulaması ile async ve await yapılarının nasıl kullanılabileceğine dair örnekler yaparak, web uygulamalarımızın performansını arttırabilir ve kullanıcıların hız

Express.js, Node.js tabanlı web uygulamaları için bir framework olduğu için, asenkron işlemlerin yönetimine özel olarak hazırlanmıştır. Bu nedenle, Express.js ile async ve await yapılarını kullanarak web uygulamalarımızın performansını arttırabiliriz. Async ve await, JavaScript'te asenkron işlemleri yönetmek için kullanılan bir yapıdır. Bu yapılar sayesinde web uygulamalarımızın verilerini asenkron olarak getirerek kullanıcı deneyimini arttırabilir, hızlı bir şekilde veri almalarını sağlayabiliriz.
Async fonksiyonlar, await ifadesi içerdiği için yürütmesi asenkron olarak gerçekleştirilir ve bir Promise döndürürler. Fonksiyon tanımının başındaki async anahtar kelimesi sayesinde, fonksiyon çalıştırıldığında async yapılarının kullanıldığını tanımlamış oluruz. Bu yapılar sayesinde kodumuz, verileri işlerken beklemeye alma işlemlerinden kurtuluş sağlamaktadır.
Bir Express.js uygulamasında async ve await yapılarını kullanarak verileri çağırmak, HTTP isteklerine bağlı olarak değişkenlik gösterir. Bu nedenle, sıralı ve birbirine bağımlı bir yapıya sahip olan işlemleri yönetmek daha kolay ve daha hızlı hale gelir. Ayrıca, kodumuz daha anlaşılır hale geldiği için, bakım ve geliştirme süreçlerinde de kolaylık sağlamaktadır.
Örnek bir Express.js uygulaması ile async ve await yapılarının nasıl kullanılabileceğine dair örnekler yaparak, bu yapıların nasıl kullanılabileceğini öğrenebiliriz. Böylece, web uygulamalarımızın performansını arttırabilir, kullanıcıların hızlı bir şekilde verilerini almasını sağlayabiliriz.
Async ve Await Nedir?
Async ve await, JavaScript'te asenkron kod bloklarını yönetmek için kullanılan bir yapıdır. Asenkron kod blokları, kodun diğer işlemlerle birlikte eşzamanlı olarak çalışmasına izin verir, bu sayede kodun çalışma süresi kısaltılır. Ancak bu kod blokları, yazılırken oldukça karmaşık hale gelebilir ve yönetilmesi güçleşebilir. İşte bu noktada async ve await yapısı devreye girer. Bu yapı, asenkron kod bloklarını daha okunaklı bir şekilde yazmamızı ve yönetmemizi sağlar.
Express.js Nedir?
Express.js, JavaScript programlama dilinde Node.js tabanlı web uygulamaları için kullanılan bir framework'tür. Express.js, güçlü ve esnek bir araçtır ve hızlı ve ölçeklenebilir uygulamalar geliştirmek için tercih edilir. Birçok özellik sunan Express.js, HTTP istekleri yönetmek, sayfalar oluşturmak, dinamik verileri göstermek ve kullanıcılarla etkileşim kurmak için kullanılabilir.
Express.js, web uygulamaları oluşturmak için çeşitli araçlar ve modüller sağlar. Bu nedenle, geliştiricilerin kod yazma süresini azaltır ve uygulama oluşturma sürecini hızlandırır. Özellikle Node.js ile birlikte kullanıldığında, birden fazla talep ve veri işlemesi yapılabilen hızlı bir web uygulaması geliştirmek daha kolay hale gelir.
Async Fonksiyonlar
Async fonksiyonlar, JavaScript'te asenkron kod bloklarını yönetmek için kullanılan bir yapıdır. Bu fonksiyonlar, await ifadesi içerdiği için yürütmesi asenkron olarak gerçekleştirilir ve bir Promise döndürürler. Asenkron fonksiyonlar, diğer işlemlerin aynı anda yapılabilmesine olanak sağlar ve bu sayede web uygulamalarının performansı artar.
Async fonksiyonlar, fetch(),XMLHttpRequest(), setTimeout() gibi işlemler için kullanılabilirler ve bu fonksiyonlar geri dönen istekleri beklemek yerine, hemen kodun devam etmesine olanak sağlarlar. Async fonksiyonlar, fonksiyon tanımının önüne async anahtar kelimesi ekleyerek tanımlanabilirler.
function fetchData() { | return new Promise((resolve, reject) => { |
setTimeout(() => { | resolve("Data fetched successfully!"); |
, 2000); | }); |
} | async function getData() { |
const result = await fetchData(); | console.log(result); |
} | getData(); |
Yukarıdaki örnekte, fetchData()
fonksiyonu bir Promise döndürmektedir. Async fonksiyonlar, await
ifadesi ile Promise'in tamamlanmasını bekler ve geri döndürülen sonucu kullanarak işlemler yapar.
Async fonksiyonlar, JavaScript ve özellikle Node.js ile birlikte kullanıldığında büyük önem taşıyan bir yapıdır. Express.js gibi frameworkler ile birlikte kullanılarak, verileri asenkron olarak almak ve web uygulamalarının performansını artırmak mümkündür.
Async Fonksiyon Kullanımı
Async anahtar kelimesi eklenerek tanımlanır. Bu fonksiyonlar yürütmesi asenkron olarak gerçekleştirilir ve bir Promise döndürürler. Bununla birlikte, Promise döndüren fonksiyonlar için .then() zinciri ya da try-catch blokları kullanarak kod karmaşık hale gelebilir. Asenkron fonksiyonlar, Promise zinciri yerine çağrıldığında beklemekte olan fonksiyonların tamamlanmasını bekleyen kodlar yürütür. Async- await yapısı async fonksiyonlarının çalışma prensibine dayanarak, asynchronous işlemlerimizi basitleştirmeyi ve okunaklı hale getirmeyi sağlar. Async anahtar kelimesiyle fonksiyonlarımızın asenkron olacağını belirttikten sonra, fonksiyonların çalışması için await anahtar kelimesini kullanabiliriz.
asyncfonksiyonlar, await ifadesi içerdiği için yürütmesi asenkron olarak gerçekleştirilir ve bir Promise döndürürler. Bu özelliği sayesinde, fonksiyonların yürütülmesi sırasında diğer işlemlere de devam edilebilir. Yani bir fonksiyonun tamamlanması beklenmez, diğer işlemlere geçerek aynı anda birden fazla işlemin yapılması sağlanır. Async fonksiyonları fonksiyon tanımının önüne async anahtar kelimesini ekleyerek tanımlayabiliriz. Bu sayede fonksiyon asenkron olarak yürütülmüş olur ve fonksiyonun geri dönüş değeri de bir Promise halinde döndürülür. Async ve await yapıları, JavaScript tabanlı web uygulamalarını geliştirirken oldukça başarılı bir şekilde kullanılabilir.
anahtar kelimesini ekleyerek tanımlayabiliriz.Async fonksiyonlar, await ifadesi içerdiği için yürütmesi asenkron olarak gerçekleştirilir ve bir Promise döndürürler.
Bir async fonksiyon tanımladığımızda fonksiyonun yürütülmesi Promise tabanlı olarak gerçekleşir ve bu yapı, özellikle asenkron işlemler için kullanışlıdır. Bu sayede işlemler seri olarak gerçekleştirilmez, aynı anda birden fazla işlemin gerçekleştirilmesi sağlanır. Bu noktada bizim işimize Await anahtar kelimesi yardımcı olur.
Await Anahtar Kelimesi
Await Anahtar Kelimesi
JavaScript'teki async fonksiyonlar, Promise objesi döndüren fonksiyonlarla birlikte kullanılır. Fonksiyonun Promise döndüreceği zaman bekleme yapılması için await anahtar kelimesi kullanılır. Await ifadesi, bir asenkron fonksiyonun dönüş değerini almak için kullanılan bir getirme işlemidir. Kodun sıralı şekilde yürütülmesini sağlar.
Örneğin, bir veritabanından veri getiren bir fonksiyon yazdığımızı düşünelim. İşlem tamamlanana kadar fonksiyon dönüş yapmayacak ve Promise döndürecektir. Bu noktada, await anahtar kelimesi ile Promise'in dönüş değeri alınacaktır.
Bunun bir örneğini aşağıdaki kodda görebiliriz:
Kod | Açıklama |
---|---|
async function getData() { const response = await fetch('https://jsonplaceholder.typicode.com/todos/1'); const data = await response.json(); return data;} | Bir asenkron fonksiyon yazarak veri almak istediğimiz URL'e bir GET isteği gönderiyoruz. Veri alınana kadar bekledikten sonra, bir JSON objesi döndürecektir. Veriyi almak için await anahtar kelimesi kullanıyoruz. |
Bunun gibi bir kod, web uygulamalarında oldukça sık kullanılır. Bu sayede veritabanı işlemleri veya uzun sürecek işlemler tamamlanana kadar kodun beklemesini sağlayarak, verilerin doğru şekilde işlenmesini sağlayabiliriz.
Express.js ve Async-Await Kullanımı
Express.js ile async ve await yapıları sayesinde, web uygulamaları arkaplanda oluşacak asenkron işlemleri yönetebilir. Asenkron JavaScript kodları belirli bir sırayla çalışmaz ve iletişimde olmayan kodların yan yana yazılması sonucunda hata verebilir. Bu nedenle web uygulamalarında, asenkron kodlar için Promise yapısı kullanılmaktadır. Express.js ise bu yapıyı yönetmek için bir framework olarak kullanılabilir.
Express.js ile async ve await yapıları kullanımı oldukça basittir. İlk olarak, belirli bir yerden verileri almak için bir API çağrısı yapan bir route tanımlanır. Bu route içinde async anahtar kelimesi ile bir fonksiyon tanımlanır. Daha sonra, bu fonksiyon içinde verilerimizi asenkron bir şekilde çağırabiliriz. İşlemler tamamlanana kadar Express.js bu işlemleri bekler ve verilerin elde edilmesinin ardından, sonuçları istemcinin kullanımına sunar. Aşağıdaki örnek Express.js uygulaması, async ve await yapılarının kullanımını göstermektedir.
HTTP Method | Endpoint | Description |
---|---|---|
GET | /books | Kitap listesini getirir |
Yukarıdaki tabloya bakacak olursak, Express.js ile bir GET request'i tutan bir route oluşturduk. Bu route içinde, async ve await yapıları kullanarak, kitap verilerimizi asenkron olarak çağırdık ve sonuçları düzenledikten sonra istemciye sunduk. Bu sayede, Express.js ile web uygulamalarında verilerimizi asenkron bir şekilde yönetebilir ve hızlı bir şekilde kullanıcılara sunabiliriz.
Örnek Bir Uygulama
Express.js kullanarak async ve await yapılarının kullanımına dair bir örneğe bakalım.İlk olarak, bir express uygulaması oluşturmayı ve ardından asenkron bir veritabanı işlevini çağırmak için async ve await kullanmayı deneyebiliriz.
//Express uygulaması oluşturma const express = require('express'); const app = express(); //Asenkron veritabanı işlevi yazma async function getDataFromDb() { const data = await db.collection('myCollection').find().toArray(); return data; } //Express endpoint'inde async işlem kullanma app.get('/', async (req, res) => { const data = await getDataFromDb(); res.json(data); });
Yukarıdaki kodda, öncelikle app.get metoduyla yeni bir endpoint oluşturulur ve bu endpointe GET isteği geldiğinde, veritabanından verilerin alınması sağlanır. Verilerin alınması için getDataFromDb adlı async fonksiyon kullanılır.
Burada dikkat edilmesi gereken en önemli nokta, veritabanı işleminin geri dönüş değerinin bir Promise davranışı sergilemesidir. Bu nedenle, fonksiyon sonlandığında, sonucun hemen alınması için await anahtar kelimesi kullanılır. Bu şekilde, fonksiyonun sonucunun geri dönmesini beklerken, ana iş parçası başka işlemler yapmaya devam edebilir. Bu, uygulamanın daha hızlı çalışmasını sağlar.