Node.js의 블루버드 프로미스와 스웨거

Swagger Logo

최근에 저는 Swagger를 사용한 Node.js 에 대한 간단한 리스너를 구축하기 위해 동기화 게이트웨이 피드를 변경합니다. 그 버전에서는 동기식 호출을 사용하여 모든 작업을 수행했습니다. 보다 완벽한 솔루션을 구축하기 위해 노력 중이므로 약속을 사용하기로 결정했습니다. 저는 블루버드 약속 라이브러리. 블루버드는 기본 제공 버전에 비해 몇 가지 멋진 기능이 있습니다.

문제

한 가지 문제를 해결하는데 시간이 좀 걸렸습니다. 블루버드에는 편리한 기능이 있습니다. 반환. 주어진 값으로 해결되는 프로미스를 만드는 것을 줄여 부르는 말입니다. 이렇게 사용하면 됩니다:

하지만 이 기능을 사용할 때 계속 오류가 발생했습니다:

더 복잡한 구조는 잘 작동했기 때문에 처음에는 정말 당황스러웠습니다.

솔루션

블루버드는 표준 프로미스 구현을 대체할 수 있도록 만들어졌습니다. 그러나 Swagger JS 클라이언트Q 라이브러리를 명시적으로 프로미스합니다.

즉, 동기화 게이트웨이 엔드포인트에 대한 호출로 반환되는 약속이 Q 버전으로 대체되고 있었습니다. Bluebird와 Q는 핵심 API의 상당 부분을 공유하기 때문에 무슨 일이 일어나고 있는지 알아내기 위해 약간의 조사가 필요했습니다.

이 문제를 해결할 수 있는 몇 가지 방법이 있습니다. 이후 반환 가 너무 간단한 루틴이기 때문에, 저는 그냥 동등한 수준의 다음 호출합니다.

원하는 경우 시도해 볼 수 있는 몇 가지 대안이 있습니다:

  • 약속하기 Swagger의 기본 지원 대신 Swagger 사용
  • "bluebird-q" 프로젝트를 사용하여 Q를 블루버드로 바꾸기
  • 다음으로 통화를 마무리합니다. Promise.resolve()

포스트 스크립트

더 많은 리소스를 확인하세요. 개발자 포털 트위터에서 팔로우하세요 카우치베이스 개발.

질문에 대한 답변을 게시할 수 있습니다. 포럼. 그리고 다음에도 적극적으로 참여합니다. 스택 오버플로.

다음 주소에서 저를 개인적으로 팔로우할 수 있습니다. 호드그릴리.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 호드 그릴리, 개발자 옹호자, 카우치베이스

호드 그레이리는 실리콘밸리에 거주하는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어 및 엔지니어링 관리자로서 20년 이상의 경력을 보유하고 있습니다. 그는 전산 물리학 및 화학, 컴퓨터 및 네트워크 보안, 금융, 모바일 등 다양한 소프트웨어 분야에서 일해 왔습니다. 2016년 카우치베이스에 합류하기 전에는 삼성에서 모바일 개발자 관계를 이끌었습니다. 컬럼비아 대학교에서 화학 물리학 박사 학위를 받았습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.