단 몇 줄의 코드로 다음 JavaScript 애플리케이션을 빌드할 때 Node.js와 함께 Couchbase를 사용할 수 있습니다.
이 헬로 월드 튜토리얼은 사용의 기본 첫 단계를 안내합니다. Node.js SDK 를 사용하여 Couchbase 7.0의 최신 기능. 최소한 JavaScript와 NoSQL 데이터베이스 - 하지만 전문 지식은 필요하지 않습니다.
카우치베이스 설치 및 준비
애플리케이션 개발을 시작하기 전에 먼저 다음과 같이 설정하세요. 최신 버전의 카우치베이스 서버 또는 카우치베이스 클라우드 계정에 무료로 가입하세요..
설치 후 여행 샘플
항공편, 호텔, 랜드마크 등이 포함된 샘플 문서 세트를 생성하는 버킷입니다. 이 데이터는 다양한 종류의 애플리케이션을 테스트할 때 유용하게 사용할 수 있습니다.
기본 Node.js 애플리케이션 설정하기
이 글의 나머지 부분에서는 자주 사용하는 코드 편집 도구와 함께 Node.js가 이미 설치되어 있다고 가정하겠습니다. (처음 시작하는 개발자는 몇 가지 기본 튜토리얼을 찾아서 작업 환경을 구축해야 합니다.)
첫 번째 단계는 프로젝트 폴더를 만들고 다음을 사용하여 패키지 템플릿을 초기화하는 것입니다. npm init -y
를 클릭합니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
타일러@local:~/src/cb-노드$ npm init -y 작성 에 /홈/타일러/src/cb-노드/패키지.json: { "name": "cb-node", "버전": "1.0.0", "설명": "", "main": "index.js", "스크립트": { "test": "echo \"오류: 지정된 테스트 없음\" && exit 1" }, "키워드": [], "author": "", "라이선스": "ISC" } |
카우치베이스 Node.js 모듈 종속성 추가하기
다음으로, 다음 종속성에 Couchbase Node.js 모듈을 추가합니다. package.json
를 실행하여 npm 설치
명령과 함께 --저장
옵션으로 설정합니다:
1 2 3 4 5 6 7 8 9 10 |
$ npm 설치 카우치베이스 --저장 > 카우치베이스@3.2.0 설치 /홈/타일러/src/cb-노드/node_modules/카우치베이스 > 사전 빌드-설치 || 노드-gyp 재구축 ... npm 경고 cb-노드@1.0.0 아니요 설명 npm 경고 cb-노드@1.0.0 아니요 저장소 필드. + 카우치베이스@3.2.0 |
그리고 package.json
파일에 종속성 섹션이 생겼습니다:
1 2 3 |
"종속성": { "couchbase": "^3.2.0" } |
카우치베이스 클러스터에 연결
모듈이 모두 제대로 설치되었는지, 그리고 클러스터에 연결할 수 있는지 테스트하려면 Couchbase 버킷에 연결하고 액세스할 수 있는 사용자를 추가하기 위해 버킷 이름을 알아야 합니다.
1 |
var 카우치베이스 = require("couchbase"); |
가장 간단하게 사용하려면 예제의 나머지 부분을 연결 함수로 래핑하세요:
1 2 3 4 5 6 7 |
카우치베이스.연결( 'couchbase://127.0.0.1', { 사용자 이름: '관리자', 비밀번호: '관리자' }, ...) |
또한 키 스페이스를 선택해야 합니다, 범위 또는 컬렉션 - 에 액세스하려는 경우 해당합니다. 이 초기 테스트 케이스에서는 범위와 컬렉션을 모두 무시하는 기본 컬렉션을 사용하겠습니다:
1 2 3 4 5 |
... (err, 클러스터) => { var 버킷 = 클러스터.버킷('travel-sample') var coll = 버킷.기본 컬렉션() ... |
JSON 문서 가져오기
수천 개의 샘플이 있습니다. JSON 문서에 있는 여행 샘플
버킷.
기본 키-값 연산을 사용하여 문서를 요청하려면 다음을 사용하세요. get
함수를 호출하고 문서 ID를 입력합니다. 아래 그림과 같이 웹 콘솔을 사용하여 지정된 호텔 문서를 검색하여 ID를 얻을 수 있습니다.
응답과 오류를 잡은 다음 콘솔에 인쇄하여 성공 여부를 확인합니다.
1 2 3 |
coll.get('hotel_5336', (err, res) => { 만약 (err) throw err 콘솔.로그(res.값) |
여기까지 읽으셨고 첫 번째 Node.js 앱이라면 축하드립니다! 이제 가장 간단한 구문으로 Couchbase에서 문서를 가져오는 방법을 알게 되었습니다. 전체 코드 샘플은 아래에 있습니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
var 카우치베이스 = require('couchbase') 카우치베이스.연결( 'couchbase://127.0.0.1', { 사용자 이름: '관리자', 비밀번호: '관리자' }, (err, 클러스터) => { var 버킷 = 클러스터.버킷('travel-sample') var coll = 버킷.기본 컬렉션() coll.get('hotel_5336', (err, res) => { 만약 (err) throw err 콘솔.로그(res.값) }) } ) |
이 예시는 블로킹 코드가 포함된 기본 예시라는 점을 기억하세요. 다음 글에서는 블로킹을 사용하지 않는 비동기 예시를 보여드리는 예제를 다룰 예정입니다.
JavaScript를 사용하여 문서 생성 또는 삽입
새 문서를 만들려면 업서트
함수를 호출합니다. 이 함수는 업서트
(새 문서의 경우) 삽입처럼 작동하거나 이미 동일한 ID를 가진 문서가 있는 경우 단순히 업데이트하기 때문입니다.
지정한 사용자에게 적절한 쓰기 권한이 있는지 확인한 후 업서트
. 아래 예에서는 간단하게 설명하기 위해 전체 버킷 관리 액세스 권한을 가정합니다.
이 시점에서 스크립트를 새 파일에 복사하여 다음을 테스트합니다. 업서트
기능과 독립적인 get
함수입니다.
Upsert
에는 문서 ID와 문서 데이터가 포함된 JSON 객체가 필요합니다. 데이터베이스에 푸시할 때 ID를 입력합니다. JSON 데이터를 저장할 변수를 만들고 여기에 몇 가지 요소를 추가합니다.
1 2 3 4 5 6 |
newdoc = { 유형: "호텔", id: 2, 이름: "Le Grande", 도시: "프랑스 파리" } |
그런 다음 업서트
함수를 새 문서 ID와 함께 사용하세요.
1 2 3 |
coll.업서트('hotel_2', newdoc, (err, res) => { 콘솔.로그(res) }) |
출력을 인쇄하여 변경/거래가 완료되었음을 표시합니다. 그리고 CAS
값은 다른 상황에서 다른 데이터 버전을 추적/잠금하기 위해 데이터의 빈티지를 비교하는 데 사용됩니다.
스크립트를 실행하면 다음과 같은 트랜잭션 요약이 생성됩니다:
1 2 3 4 5 |
$ 노드 앱.js MutationResult { cas: CbCas<1628915917601505280>, 토큰: CbMutationToken<4:251812459673841:85:여행-샘플> } |
이제 원본으로 돌아갈 수 있습니다. get
스크립트에 새 문서 ID를 끌어다 놓아 이제 검색이 가능한지 테스트합니다.
간단한 작업을 수행하기 위한 전체 스크립트는 다음과 같습니다. 업서트
를 독립형 Node.js 스크립트에 추가합니다.
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 |
var 카우치베이스 = require('couchbase') 카우치베이스.연결( 'couchbase://127.0.0.1', { 사용자 이름: '관리자', 비밀번호: '관리자' }, (err, 클러스터) => { var 버킷 = 클러스터.버킷('travel-sample') var coll = 버킷.기본 컬렉션() newdoc = { 유형: "호텔", id: 2, 이름: "Le Grande", 도시: "프랑스 파리" } coll.업서트('hotel_2', newdoc, (err, res) => { 콘솔.로그("호텔 추가") 콘솔.로그(res) }) } ) |
결론
이 기본 자바스크립트와 카우치베이스 예제를 함께 따라해 주셔서 감사합니다. Node.js를 사용하여 NoSQL 애플리케이션을 구축하는 데 도움이 되셨기를 바랍니다.
더 많은 SDK 관련 예제 보기 Node.js SDK 설명서를 확인하세요.. 다음 게시물에서는 비동기적으로 함수를 사용하는 방법을 살펴보고 쿼리 및 검색과 같은 다른 Couchbase 함수에 대해 자세히 알아보겠습니다.
나머지 Node.js + Couchbase 방법 시리즈도 확인해 보세요:
?지금 Couchbase Cloud에 가입하세요
[...] 게시물은 지난주 비동기 [...]에 대한 포스팅을 포함하여 Couchbase에서 Node.js 사용에 대한 소개 시리즈를 계속합니다.