다음과 같은 자바스크립트 개발자라면 를 사용하도록 전환하는 경우 비동기 함수를 활용하고 싶을 것입니다.
비동기 API 호출은 코드를 차단하지 않고 약속을 반환하기 때문입니다. 이 글에서는 Node.js에서 Couchbase SDK를 호출하는 비동기 함수를 만드는 방법을 보여드리겠습니다.
간단히 요약합니다: 카우치베이스로 Node.js 프로젝트 설정하기
이 게시물은 다음에 대한 소개 시리즈를 이어갑니다. 카우치베이스와 함께 Node.js 사용.
기존 카우치베이스 데이터베이스 ( 여행 샘플
버킷 사용) 및 Node.js 환경이 가정되어 있지만, 더 자세한 내용은 지난주 포스트에서 Couchbase용 Node.js SDK 시작하기를 참조하세요..
따라잡으려면 먼저 Couchbase Node.js SDK를 설치합니다. 를 사용하여 npm
명령과 함께 저장
옵션을 사용하여 종속성을 저장할 수 있습니다. package.json
구성 파일로 이동합니다. 그 모습은 다음과 같습니다:
1 2 3 |
cd cb-node2 npm init -y npm 설치 카우치베이스 --저장 |
이제 다음 단계로 넘어갈 준비가 되었습니다.
비동기 함수를 사용하여 Couchbase에 연결하기
자바스크립트를 사용하여 카우치베이스에 연결하기 비동기
함수를 사용하려면 세 가지 컴포넌트 외에 라이브러리를 추가로 가져와야 합니다:
-
- 서버 이름/주소
- 사용자 이름/비밀번호
- 연결할 버킷
모든 것을 기본 비동기
함수를 만들고 클러스터
객체입니다.
1 2 3 4 5 6 7 |
const 카우치베이스 = require("couchbase") 비동기 함수 메인(){ const 클러스터 = new 카우치베이스.클러스터("couchbase://localhost", { 사용자 이름: "관리자", 비밀번호: "관리자" }); |
기본 연결 정보를 제공한 다음 버킷과 특정 범위 또는 컬렉션을 선택합니다(이 예제에서는 기본 컬렉션을 사용했습니다). 그 결과 컬렉션
객체는 이후 데이터베이스 호출에 사용됩니다.
1 2 |
const 버킷 = 클러스터.버킷("travel-sample"); const 컬렉션 = 버킷.기본 컬렉션(); |
JSON 문서 가져오기
이제 비동기 함수가 설정되었으므로 다음을 수행하는 방법을 알아보겠습니다. get
a JSON 문서 에서
기본 키-값 연산을 완료하려면 기존 문서 ID를 알아야 합니다. 이 예에서는 프랑스의 Chalets Marmotte Mountain Adventure에 대한 ID를 사용하겠습니다: hotel_5336
.
기본 get
구문 - 에 표시 이전 블로그 게시물도 - 입니다:
1 |
컬렉션.get(키) |
비동기식으로 만들려면 기다림
키워드를 비동기
함수를 생성합니다. 나중에 호텔 ID로 이 기능을 호출하겠습니다. 오류를 캡처하고 인쇄하는 것도 좋은 습관입니다.
1 2 3 4 5 6 7 8 9 |
const getHotel = 비동기 (키) => { 시도 { const 결과 = 기다림 컬렉션.get(키); 콘솔.로그("결과:"); 콘솔.로그(결과); } catch (오류) { 콘솔.오류(오류); } }; |
스크립트 마지막에 새 함수를 호출합니다. 전체 스크립트는 스크립트 전체가 main()
함수를 호출합니다:
1 2 3 4 5 |
... 기다림 getHotel("hotel_5336"); } 메인(); |
그런 다음 비동기 함수를 실행하고 특정 문서의 출력을 확인하여 테스트하세요:
1 2 3 4 5 6 7 8 9 |
$ 노드 앱.js 결과: GetResult { 콘텐츠: { title: '샤모니', 이름: '샬레 마모트 마운틴 어드벤처', 주소: '31 화학 데 랑블, 아르젠티에르', 방향: null, 전화: '+33682891523', |
JSON 문서 업서트하기
다음으로 다음을 수행할 수 있는 방법을 살펴보겠습니다. 업서트
비동기 함수를 사용하여 JSON 문서를 생성합니다.
원본 스크립트를 사용하여 새 문서를 만든 다음 다시 요청하여 왕복 전체 내용을 표시하는 기능을 추가할 수 있습니다. 문서를 데이터베이스에 저장하거나 추가하려면 업서트
함수를 호출하고 JSON 객체를 전달합니다.
연결 상태를 유지하고 get
함수에 대한 새 함수를 생성하고 업서트
.
먼저 새로운 호텔
함수를 호출합니다. 아래에서 볼 수 있듯이 키/ID와 JSON 객체를 받도록 설정했습니다.
1 2 3 4 5 6 7 8 9 |
const 새로운 호텔 = 비동기 (키,jsondoc) => { 시도 { const upresult = 기다림 컬렉션.업서트(키, jsondoc); 콘솔.로그("\n삽입 결과:"); 콘솔.로그(upresult); } catch (오류){ 콘솔.오류(오류); } }; |
다음으로 Couchbase 데이터베이스로 전송할 JSON 문서를 만듭니다.
1 2 3 4 5 6 |
jsondoc = { "type": "호텔", "id": 3, "name": "Le Grande", "city": "프랑스 파리" } |
새 호텔 항목을 호출합니다. hotel_3
를 호출할 때 사용합니다:
1 |
기다림 새로운 호텔("hotel_3", jsondoc); |
이 모든 코드를 getHotel
호출에 대한 문서 ID를 조정할 수 있습니다. get
함수를 사용하여 새 호텔이 저장되었는지 확인할 수 있습니다.
다음은 문서를 생성한 후 동일한 문서를 다시 가져온 결과입니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ 노드 앱.js Upsert 결과: MutationResult { cas: CbCas<1629156064638664704>, 토큰: CbMutationToken<771:243978275681931:85:여행-샘플> } (노드:3060577) [DEP0079] DeprecationWarning: 사용자 지정 검사 함수 on 개체 경유 .검사() 는 사용 중단 결과: GetResult { 콘텐츠: { 유형: 'hotel', id: 3, 이름: 'Le Grande', 도시: '파리, 프랑스' }, cas: CbCas<1629156064638664704>, 만료 시간: 정의되지 않음 } |
전체 코드 샘플
오늘 포스팅에서 정리한 모든 예제 코드는 다음과 같습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
const 카우치베이스 = require("couchbase") 비동기 함수 메인(){ const 클러스터 = new 카우치베이스.클러스터("couchbase://localhost", { 사용자 이름: "관리자", 비밀번호: "관리자" }); const 버킷 = 클러스터.버킷("travel-sample"); const 컬렉션 = 버킷.기본 컬렉션(); const getHotel = 비동기 (키) => { 시도 { const 결과 = 기다림 컬렉션.get(키); 콘솔.로그("\nResult:"); 콘솔.로그(결과); } catch (오류){ 콘솔.오류(오류); } }; const 새로운 호텔 = 비동기 (키,jsondoc) => { 시도 { const upresult = 기다림 컬렉션.업서트(키, jsondoc); 콘솔.로그("\n삽입 결과:"); 콘솔.로그(upresult); } catch (오류){ 콘솔.오류(오류); } }; jsondoc = { "type": "호텔", "id": 3, "name": "Le Grande", "city": "프랑스 파리" } 기다림 새로운 호텔("hotel_3", jsondoc); 기다림 getHotel("hotel_3"); } 메인(); |
결론
전 과정을 완료하신 것을 축하드립니다. 업서트
그리고 get
사이클을 추가했습니다! 이제 좀 더 복잡한 애플리케이션을 빌드할 준비가 되셨으니 다음 블로그 게시물에서 다뤄보겠습니다.
보다 자세한 개발자 가이드는 다음을 참조하세요. 카우치베이스 Node.js SDK 설명서 바로가기.
나머지 Node.js + Couchbase 방법 시리즈도 확인해 보세요:
지금 Couchbase Cloud 체험하기