Bluebird NPM: 예제를 통한 Bluebird JS 약속

블루버드JS란?

Bluebird JS는 모든 기능을 갖춘 JavaScript용 Promise 라이브러리입니다. Bluebird의 가장 강력한 기능은 다른 Node 모듈을 사용하기 위해 "약속"할 수 있다는 것입니다.sync솔직히. Promisify는 콜백 함수에 적용되는 개념입니다. 이 개념은 호출되는 모든 콜백 함수가 일부 값을 반환하는지 확인하는 데 사용됩니다.

그래서 만약 NodeJS 모듈에는 값을 반환하지 않는 콜백 함수가 포함되어 있으며 노드 모듈을 약속하면 특정 노드 모듈의 모든 함수가 값을 반환하도록 자동으로 수정됩니다.

따라서 BlueBird를 사용하여 다음을 만들 수 있습니다. MongoDB 모듈 실행sync솔직히. 이는 Node.js 애플리케이션을 작성할 때 또 다른 수준의 용이성을 추가합니다.

bluebird 모듈을 사용하는 방법에 대한 예를 살펴보겠습니다.

우리의 예에서는 먼저 "EmployeeDB" 데이터베이스의 "Employee 컬렉션"에 대한 연결을 설정합니다. "then" 연결이 설정되면 컬렉션의 모든 레코드를 가져와 그에 따라 콘솔에 표시합니다.

Bluebird JS 라이브러리로 약속을 생성하는 방법

다음은 단계별 예입니다. 약속을 생성하다 Bluebird JS 라이브러리 사용:

1단계) NPM 모듈 설치

Node 애플리케이션 내에서 Bluebird를 사용하려면 Bluebird 모듈이 필요합니다. Bluebird 모듈을 설치하려면 아래 명령을 실행하십시오.

npm 설치 블루버드

2단계) Bluebird 모듈 포함

다음 단계는 코드에 bluebird 모듈을 포함하고 전체 내용을 약속하는 것입니다. MongoDB 기준 치수. 약속한다는 것은 블루버드가 MongoDB 라이브러리는 약속을 반환합니다.

Bluebird JS 라이브러리로 약속 생성

코드 설명:-

  1. require 명령은 Bluebird 라이브러리를 포함하는 데 사용됩니다.
  2. Bluebird의 .promisifyAll() 메소드를 사용하여sync 모든 메소드의 버전 MongoDB 모듈을 제공합니다. 이는 각 메소드의 MongoDB 모듈은 백그라운드에서 실행되며 각 메소드 호출에 대해 약속이 반환되는지 확인합니다. MongoDB 도서관.

3단계) ​​데이터베이스에 연결

마지막 단계는 데이터베이스에 연결하고 컬렉션의 모든 레코드를 검색하여 콘솔 로그에 표시하는 것입니다.

Bluebird JS 라이브러리로 약속 생성

코드 설명:-

  1. 우리는 "connectA"를 사용하고 있음을 알 수 있습니다.sync” 방식을 사용하여 일반 접속 방식이 아닌 데이터베이스. Bluebird는 실제로 A를 추가합니다.sync 각 메소드에 대한 키워드 MongoDB 약속을 반환하는 호출과 그렇지 않은 호출을 구별하는 라이브러리입니다. 따라서 A가 없는 방법은 보장할 수 없습니다.sync word는 값을 반환합니다.
  2. connectA와 유사sync 이제 findA를 사용하고 있습니다.sync 모든 레코드를 반환하는 메서드 mongoDB '직원' 컬렉션.
  3. 마지막으로, findAsync 성공적인 약속을 반환한 다음 컬렉션의 각 레코드를 반복하고 콘솔 로그에 표시하는 코드 블록을 정의합니다.

위 단계가 올바르게 수행되면 Employee 컬렉션의 모든 문서가 아래 출력과 같이 콘솔에 표시됩니다.

Bluebird JS 라이브러리로 약속 생성

참조용 코드는 다음과 같습니다.

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