Bluebird NPM: وعد Bluebird JS مع مثال
ما هو بلوبيرد JS؟
Bluebird JS هي مكتبة وعد كاملة الميزات لـ Javaأقوى ميزة في Bluebird هي أنه يسمح لك بـ "الوعد" بوحدات Node الأخرى لاستخدامها بشكل غير متزامن. يعد "الوعد" مفهومًا يتم تطبيقه على وظائف الاستدعاء. يتم استخدام هذا المفهوم لضمان أن كل وظيفة استدعاء يتم استدعاؤها تعيد قيمة ما.
حتى إذا كان أ NodeJS تحتوي الوحدة النمطية على وظيفة رد اتصال لا تُرجع قيمة، وإذا وعدنا بوحدة العقدة، فسيتم تعديل جميع الوظائف في وحدة العقدة المحددة تلقائيًا للتأكد من أنها تُرجع قيمة.
لذلك يمكنك استخدام BlueBird لإنشاء MongoDB يتم تشغيل الوحدة النمطية بشكل غير متزامن. وهذا يضيف مستوى آخر من السهولة عند كتابة تطبيقات Node.js.
سنلقي نظرة على مثال لكيفية استخدام وحدة بلوبيرد.
سيقوم مثالنا أولاً بإنشاء اتصال بـ "مجموعة الموظفين" في قاعدة بيانات "EmployeeDB". إذا تم إنشاء اتصال "ثم"، فسيحصل على كافة السجلات الموجودة في المجموعة ويعرضها في وحدة التحكم وفقًا لذلك.
كيفية إنشاء الوعود باستخدام مكتبة Bluebird JS
هنا هو المثال خطوة بخطوة ل توليد الوعود مع مكتبة Bluebird JS:
الخطوة 1) تثبيت وحدات NPM
لاستخدام Bluebird من داخل تطبيق Node، يلزم توفر وحدة Bluebird. لتثبيت وحدة بلوبيرد، قم بتشغيل الأمر أدناه
تثبيت npm بلوبيرد
الخطوة 2) تضمين وحدات بلوبيرد
الخطوة التالية هي تضمين وحدة بلوبيرد في التعليمات البرمجية الخاصة بك والتعهد بها بالكامل MongoDB وحدة. بالوعد، نعني أن بلوبيرد ستضمن أن كل طريقة محددة في 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); }) });