Hướng dẫn Bluebird Promises

Bluebird là một thư viện Promise đầy đủ tính năng cho JavaScript. Tính năng mạnh nhất của Bluebird là nó cho phép bạn "quảng bá" các mô-đun Node khác để sử dụng chúng một cách không đồng bộ. Promisify là một khái niệm được áp dụng cho các hàm gọi lại. Khái niệm này được sử dụng để đảm bảo rằng mọi hàm gọi lại được gọi đều trả về một giá trị nào đó.

Vì vậy, nếu một mô-đun Node JS chứa một hàm gọi lại không trả về giá trị và nếu chúng tôi Promisify mô-đun nút, tất cả các chức năng trong mô-đun nút cụ thể đó sẽ tự động được sửa đổi để đảm bảo rằng nó trả về một giá trị.

Vì vậy, bạn có thể sử dụng BlueBird để làm cho mô-đun MongoDB chạy không đồng bộ. Điều này chỉ thêm một mức độ dễ dàng khác khi viết các ứng dụng Node.js.

Chúng ta sẽ xem xét một ví dụ về cách sử dụng mô-đun bluebird.

Ví dụ của chúng tôi trước tiên sẽ thiết lập kết nối đến "Bộ sưu tập nhân viên" trong cơ sở dữ liệu "EmployeeDB". Nếu kết nối "then" được thiết lập, thì nó sẽ lấy tất cả các bản ghi trong bộ sưu tập và hiển thị chúng trong bảng điều khiển tương ứng.

Tạo lời hứa với thư viện BlueBird

Bước 1) Cài đặt mô-đun NPM

Để sử dụng Bluebird từ bên trong ứng dụng Node, cần có mô-đun Bluebird. Để cài đặt mô-đun Bluebird, hãy chạy lệnh dưới đây

npm cài đặt bluebird

Bước 2) Bước tiếp theo là đưa mô-đun bluebird vào mã của bạn và quảng bá toàn bộ mô-đun MongoDB. Bằng cách quảng bá, chúng tôi muốn nói rằng bluebird sẽ đảm bảo rằng mỗi và mọi phương thức được xác định trong thư viện MongoDB đều trả về một lời hứa.

Giải thích mã: -

  1. Lệnh request được sử dụng để bao gồm thư viện Bluebird.
  2. Sử dụng phương thức .promisifyAll () của Bluebird để tạo phiên bản không đồng bộ của mọi phương thức mà mô-đun MongoDB cung cấp. Điều này đảm bảo rằng mỗi phương thức của mô-đun MongoDB sẽ chạy ở chế độ nền và đảm bảo rằng một lời hứa được trả về cho mỗi lần gọi phương thức trong thư viện MongoDB.

Bước 3) Bước cuối cùng là kết nối với cơ sở dữ liệu của chúng tôi, truy xuất tất cả các bản ghi trong bộ sưu tập của chúng tôi và hiển thị chúng trong nhật ký bảng điều khiển của chúng tôi.

Giải thích mã: -

  1. Bạn sẽ nhận thấy rằng chúng tôi đang sử dụng phương thức "connectAsync" thay vì phương thức kết nối thông thường để kết nối với cơ sở dữ liệu. Bluebird thực sự thêm từ khóa Async vào mỗi phương thức trong thư viện MongoDB để phân biệt các lệnh gọi trả về lời hứa và lệnh nào không. Vì vậy, không có gì đảm bảo rằng các phương thức không có từ Async sẽ trả về một giá trị.
  2. Tương tự như phương thức connectAsync, bây giờ chúng ta đang sử dụng phương thức findAsync để trả về tất cả các bản ghi trong bộ sưu tập mongoDB 'Employee'.
  3. Cuối cùng, nếu findAsync trả về một lời hứa thành công thì chúng tôi sẽ xác định một khối mã để lặp qua từng bản ghi trong bộ sưu tập và hiển thị chúng trong nhật ký bảng điều khiển.

Nếu các bước trên được thực hiện đúng cách, tất cả các tài liệu trong bộ sưu tập Nhân viên sẽ được hiển thị trong bảng điều khiển như được hiển thị trong đầu ra bên dưới.

Đây là mã để bạn tham khảo

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);})});

thú vị bài viết...