Bluebird NPM: Lời hứa của Bluebird JS kèm ví dụ

Bluebird JS là gì?

Bluebird JS là thư viện Promise đầy đủ tính năng dành cho JavaScript. Tính năng mạnh nhất của Bluebird là nó cho phép bạn "promisify" các module 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 NodeJS mô-đun chứa hàm gọi lại không trả về giá trị và nếu chúng tôi Hứa với mô-đun nút, tất cả hàm 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 để thực hiện MongoDB module chạy không đồng bộ. Điều này chỉ tăng thêm một cấp độ dễ dàng khi viết các ứng dụng Node.js.

Chúng ta sẽ xem 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 tới “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.

Cách tạo lời hứa với Thư viện Bluebird JS

Đây là ví dụ từng bước để tạo ra lời hứa với thư viện Bluebird JS:

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

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

npm cài đặt bluebird

Bước 2) Bao gồm các mô-đun Bluebird

Bước tiếp theo là đưa mô-đun bluebird vào mã của bạn và hứa hẹn toàn bộ MongoDB mô-đun. Bằng cách hứa hẹn, 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 MongoDB thư viện trả lại một lời hứa.

Tạo lời hứa với Thư viện Bluebird JS

Giải thích mã: -

  1. Lệnh require đượ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 bất đồng bộ của mọi phương thức MongoDB mô-đun cung cấp. Điều này đảm bảo rằng mỗi phương pháp của MongoDB mô-đun sẽ chạy ở chế độ nền và đảm bảo rằng lời hứa được trả lại cho mỗi lệnh gọi phương thức trong MongoDB thư viện.

Bước 3) Kết nối với cơ sở dữ liệu

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.

Tạo lời hứa với Thư viện Bluebird JS

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 pháp “connectAsync” thay vì phương pháp 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 MongoDB thư viện để phân biệt các lệnh gọi trả về lời hứa và các lệnh gọi không trả về lời hứa. 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ề giá trị.
  2. Tương tự như phương thức connectAsync, hiện 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 'Employee' của mongoDB.
  3. Cuối cùng, nếu findAsync trả về một lời hứa thành công, chúng ta sẽ định nghĩa 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, tất 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ư minh họa ở đầu ra bên dưới.

Tạo lời hứa với Thư viện Bluebird JS

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