Bluebird NPM: Bluebird JS обещание с пример
Какво е Bluebird JS?
Bluebird JS е напълно функционална библиотека на Promise за JavaСкрипт. Най-силната характеристика на Bluebird е, че ви позволява да „обещавате“ други модули на Node, за да ги използвате асинхронно. Promisify е концепция, приложена към функциите за обратно извикване. Тази концепция се използва, за да се гарантира, че всяка извикана функция за обратно извикване връща някаква стойност.
Така че, ако a NodeJS module съдържа функция за обратно извикване, която не връща стойност и ако обещаем модула на възела, всички функции в този конкретен модул на възел ще бъдат автоматично модифицирани, за да се гарантира, че връща стойност.
Така че можете да използвате BlueBird, за да направите MongoDB модулът работи асинхронно. Това просто добавя друго ниво на лекота при писане на Node.js приложения.
Ще разгледаме пример за това как да използвате модула bluebird.
Нашият пример първо ще установи връзка с „Колекцията на служителите“ в базата данни „EmployeeDB“. Ако е установена връзка „тогава“, тя ще получи всички записи в колекцията и съответно ще ги покаже в конзолата.
Как да генерирате обещания с Bluebird JS библиотека
Ето примера стъпка по стъпка за генерира обещания с библиотека Bluebird JS:
Стъпка 1) Инсталиране на NPM модулите
За да използвате Bluebird от приложение на Node, е необходим модулът Bluebird. За да инсталирате модула Bluebird, изпълнете командата по-долу
npm инсталирайте bluebird
Стъпка 2) Включете модули Bluebird
Следващата стъпка е да включите модула bluebird във вашия код и да обещаете целия MongoDB модул. Под promisify имаме предвид, че bluebird ще гарантира, че всеки метод, дефиниран в MongoDB библиотеката връща обещание.
Обяснение на кода:-
- Командата require се използва за включване на библиотеката Bluebird.
- Използвайте метода .promisifyAll() на Bluebird, за да създадете асинхронна версия на всеки метод MongoDB модул предоставя. Това гарантира, че всеки метод на MongoDB модулът ще работи във фонов режим и ще гарантира, че се връща обещание за всяко извикване на метод в MongoDB библиотека.
Стъпка 3) Свържете се с базата данни
Последната стъпка е да се свържете с нашата база данни, да извлечете всички записи в нашата колекция и да ги покажете в нашия дневник на конзолата.
Обяснение на кода:-
- Ще забележите, че използваме метода „connectAsync“ вместо нормалния метод за свързване за свързване към база данни. Bluebird всъщност добавя ключовата дума Async към всеки метод в MongoDB библиотека за разграничаване на обажданията, които връщат обещания, и тези, които не връщат. Така че няма гаранция, че методите без думата Async ще върнат стойност.
- Подобно на метода connectAsync, сега използваме метода findAsync, за да върнем всички записи в колекцията 'Employee' на mongoDB.
- И накрая, ако findAsync върне успешно обещание, ние след това дефинираме блок от код за итерация през всеки запис в колекцията и показването им в регистрационния файл на конзолата.
Ако горните стъпки са извършени правилно, всички документи в колекцията Служители ще бъдат показани в конзолата, както е показано в изхода по-долу.
Ето кода за справка:
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); }) });