Bluebird, JavaScript için tam özellikli bir Promise kitaplığıdır. Bluebird'ün en güçlü özelliği, diğer Node modüllerini eşzamansız olarak kullanmak için "söz vermenize" izin vermesidir. Promisify, geri arama işlevlerine uygulanan bir kavramdır. Bu kavram, çağrılan her geri çağırma işlevinin bir değer döndürmesini sağlamak için kullanılır.
Dolayısıyla, bir Node JS modülü bir değer döndürmeyen bir geri çağırma işlevi içeriyorsa ve düğüm modülünü Promisify edersek, o belirli düğüm modülündeki tüm işlevler, bir değer döndürmesini sağlamak için otomatik olarak değiştirilecektir.
Böylece, MongoDB modülünün eşzamansız olarak çalışmasını sağlamak için BlueBird'ü kullanabilirsiniz. Bu, Node.js uygulamalarını yazarken başka bir kolaylık düzeyi ekler.
Bluebird modülünün nasıl kullanılacağına dair bir örneğe bakacağız.
Örneğimiz ilk olarak "EmployeeDB" veritabanındaki "Çalışan koleksiyonu" ile bir bağlantı kuracaktır. "O zaman" bağlantı kurulursa, koleksiyondaki tüm kayıtları alır ve buna göre konsolda görüntüler.
BlueBird kitaplığıyla vaatler üretmek
Adım 1) NPM Modüllerini Takma
Bluebird'ü bir Node uygulamasından kullanmak için Bluebird modülü gereklidir. Bluebird modülünü kurmak için aşağıdaki komutu çalıştırın
npm bluebird yükle
Adım 2) Bir sonraki adım, bluebird modülünü kodunuza dahil etmek ve tüm MongoDB modülünü vaat etmektir. Söz vermekle, bluebird'ün MongoDB kitaplığında tanımlanan her bir yöntemin bir söz vermesini sağlayacağını kastediyoruz.
Kod Açıklaması: -
- Required komutu, Bluebird kitaplığını dahil etmek için kullanılır.
- MongoDB modülünün sağladığı her yöntemin zaman uyumsuz bir sürümünü oluşturmak için Bluebird'ün .promisifyAll () yöntemini kullanın. Bu, MongoDB modülünün her yönteminin arka planda çalışmasını ve MongoDB kitaplığındaki her yöntem çağrısı için bir sözün döndürülmesini sağlar.
Adım 3) Son adım, veritabanımıza bağlanmak, koleksiyonumuzdaki tüm kayıtları almak ve bunları konsol günlüğümüzde görüntülemektir.
Kod Açıklaması: -
- Veritabanına bağlanmak için normal bağlantı yöntemi yerine "connectAsync" yöntemini kullandığımızı fark edeceksiniz. Bluebird, vaatleri döndüren çağrıları ve dönmeyen çağrıları ayırt etmek için MongoDB kitaplığındaki her yönteme Async anahtar sözcüğünü ekler. Bu nedenle, Async sözcüğü olmayan yöntemlerin bir değer döndüreceğinin garantisi yoktur.
- ConnectAsync yöntemine benzer şekilde, mongoDB 'Employee' koleksiyonundaki tüm kayıtları döndürmek için artık findAsync yöntemini kullanıyoruz.
- Son olarak, findAsync başarılı bir söz verirse, koleksiyondaki her kaydı yinelemek ve bunları konsol günlüğünde görüntülemek için bir kod bloğu tanımlarız.
Yukarıdaki adımlar düzgün bir şekilde gerçekleştirilirse, Çalışan koleksiyonundaki tüm belgeler aşağıdaki çıktıda gösterildiği gibi konsolda görüntülenecektir.
İşte referans için kod
var Promise = require('bluebird');var mongoClient = Promise.promisifyAll(require('mongodb')).MongoClient;var url = 'mongodb://localhost/EmployeeDB';mongoClient.connectAsync('mongodb://localhost/EmployeeDB').then(function(db) {return db.collection('Employee').findAsync({})}).then(function(cursor) {cursor.each(function(err, doc) {console.log(doc);})});