Bluebird adalah pustaka Janji berfitur lengkap untuk JavaScript. Fitur terkuat dari Bluebird adalah memungkinkan Anda untuk "menjanjikan" modul Node lain untuk menggunakannya secara asinkron. Promisify adalah konsep yang diterapkan pada fungsi callback. Konsep ini digunakan untuk memastikan bahwa setiap fungsi callback yang dipanggil mengembalikan beberapa nilai.
Jadi jika modul Node JS berisi fungsi panggilan balik yang tidak mengembalikan nilai, dan jika kita Menjanjikan modul node, semua fungsi dalam modul node tertentu secara otomatis akan dimodifikasi untuk memastikan bahwa ia mengembalikan nilai.
Jadi, Anda dapat menggunakan BlueBird untuk membuat modul MongoDB berjalan secara asinkron. Ini hanya menambah tingkat kemudahan lain saat menulis aplikasi Node.js.
Kami akan melihat contoh bagaimana menggunakan modul bluebird.
Contoh kami pertama-tama akan membuat sambungan ke "Koleksi karyawan" di database "EmployeeDB". Jika koneksi "kemudian" dibuat, maka itu akan mendapatkan semua catatan dalam koleksi dan menampilkannya di konsol yang sesuai.
Membuat janji dengan pustaka BlueBird
Langkah 1) Menginstal Modul NPM
Untuk menggunakan Bluebird dari dalam aplikasi Node, modul Bluebird diperlukan. Untuk menginstal modul Bluebird, jalankan perintah di bawah ini
npm instal bluebird
Langkah 2) Langkah selanjutnya adalah memasukkan modul bluebird ke dalam kode Anda dan memastikan seluruh modul MongoDB. Yang kami maksud dengan promisify adalah bahwa bluebird akan memastikan bahwa setiap metode yang ditentukan dalam pustaka MongoDB mengembalikan sebuah promise.
Penjelasan Kode: -
- Perintah memerlukan digunakan untuk menyertakan perpustakaan Bluebird.
- Gunakan metode .promisifyAll () Bluebird untuk membuat versi asinkron dari setiap metode yang disediakan modul MongoDB. Ini memastikan bahwa setiap metode modul MongoDB akan berjalan di latar belakang dan memastikan bahwa janji dikembalikan untuk setiap panggilan metode di pustaka MongoDB.
Langkah 3) Langkah terakhir adalah menghubungkan ke database kami, mengambil semua catatan dalam koleksi kami dan menampilkannya di log konsol kami.
Penjelasan Kode: -
- Anda akan melihat bahwa kami menggunakan metode "connectAsync" daripada metode koneksi normal untuk menghubungkan ke database. Bluebird sebenarnya menambahkan kata kunci Async ke setiap metode di pustaka MongoDB untuk membedakan panggilan mana yang mengembalikan promise dan yang tidak. Jadi tidak ada jaminan bahwa metode tanpa kata Async akan mengembalikan nilai.
- Mirip dengan metode connectAsync, kami sekarang menggunakan metode findAsync untuk mengembalikan semua catatan dalam koleksi 'Karyawan' mongoDB.
- Terakhir, jika findAsync mengembalikan promise yang berhasil, kita kemudian menentukan blok kode untuk mengulang setiap record dalam koleksi dan menampilkannya di log konsol.
Jika langkah-langkah di atas dilakukan dengan benar, semua dokumen dalam koleksi Karyawan akan ditampilkan di konsol seperti yang ditunjukkan pada output di bawah ini.
Ini kode untuk referensi Anda
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);})});