다음은 Node.js 훌륭한 nodejs 소개에 대한 좋은 입문 기사입니다. 이 기사에서는 Node.js와 CouchDB에 대해 매우 편리하게 소개하고 Perform CRUD를 위한 REST 서비스를 구현하는 예를 제공합니다. CouchDB를 데이터베이스로 사용하여 북마크에 대한 작업.
이 글에서는 Mac OS X에서 Node.js를 설치하고 시작하는 방법을 소개합니다. 이 과정도 CouchDB를 설치하고 CouchDB 기반의 REST API를 구현하는 데 약 30분 정도 소요됩니다.
이 글에서는 Git이 이미 컴퓨터에 설치되어 있다고 가정합니다. 그렇지 않은 경우 이 글을 참조하여 설치하세요.
node.js 및 npm 설치
가장 쉬운 방법은 nodejs 다운로드 섹션 페이지를 통해 node.js 공식 웹사이트로 이동하여 Mac에서 Node.js와 npm(노드 패키지 관리자)을 설치하는 설치 프로그램을 선택하는 것입니다. 🎜>
설치가 성공적으로 완료되면 node 및 npm 명령을 사용할 수 있습니다.
CouchDB 설치
이 글에서는 객체를 저장하기 위해 CouchDB가 필요하므로 CouchDB도 설치해야 합니다.CouchDB 설치는 소스코드를 다운로드한 후 컴파일해야 하기 때문에 조금 더 번거롭습니다. 그 전에 Homebrew를 설치해야 합니다.
git clone https://github.com/mxcl/homebrew.git cd homebrew/bin brew install autoconf automake libtool brew install couchdb
중요 참고 사항: CouchDB는 이전에 설치를 방해할 수 있는 문제를 보고했습니다. 이 문제를 해결하려면 ~/couch/homebrew/Library/Formula/couchdb.rb 파일을 수동으로 편집해야 합니다.
최종 수정 결과는 다음과 같습니다.
Mac OS X에 CouchDB 설치에 대한 자세한 내용은 "OSX에 CouchDB 설치"를 참조하세요.
CouchDB가 컴파일되면 ./couchdb를 수동으로 실행하여 시작할 수 있습니다. 브라우저에서 http://127.0.0.1:5984/_utils 주소를 열어 CouchDB 설치가 성공했는지 확인할 수 있습니다.
튜토리얼 다운로드
이제 필수 소프트웨어가 설치되었으므로 Node.js 소개 예시를 계속 진행하겠습니다.
먼저 Git을 사용하여 인스턴스 소스 코드를 얻습니다
git 클론 https://github.com/indexzero/nodejs-intro.git
CouchDB 데이터베이스 생성
튜토리얼을 시작하기 전에 먼저 CouchDB 데이터베이스를 생성해야 합니다. 먼저 CouchDB가 시작되었는지 확인한 후 다음 명령을 사용하여 데이터베이스를 생성해야 합니다.
$ 컬 -X PUT http://127.0.0.1:5984/pinpoint-dev10
{"알았어":사실}
브라우저에서 http://127.0.0.1:5984/_utils를 방문하면 새로 생성된 데이터베이스를 확인할 수 있습니다.
여기에는 CouchDB에 대한 훌륭한 가이드도 있습니다.
튜토리얼 시작
노드 js 인스턴스는 모듈식으로 구축됩니다. lib 디렉터리에는 많은 모듈이 포함되어 있으며 서버 스크립트는 bin 디렉터리에 있습니다.
예를 들어 CouchDB 튜토리얼을 시작하려면 bin 디렉터리에서 다음 명령을 실행할 수 있습니다.
./server -t 02couchdb -s
-t 매개변수를 사용하면 lib 디렉토리에 실행될 모듈을 지정할 수 있고, -s 매개변수는 방금 생성한 pinpoint-dev 데이터베이스를 설정하는 데 사용됩니다.
sys - 유틸리티 변경
Node.js 버전에 따라 다음과 같은 오류나 경고가 표시될 수 있습니다.
이 문제를 방지하려면 모든 호출 `require("sys")`를 `require("util")`로 바꿔야 합니다
노드 v0.6.14에서는 오류 메시지가 표시되지 않지만 경고 메시지가 표시됩니다.
튜토리얼 실행
튜토리얼을 실행하면 몇 가지 오류가 표시됩니다:
该教程包含很多依赖,我们需要使用 npm 来下载这些依赖的包。
安装 node 包
Node packages (dependencies) 可通过 npm 命令来安装,例如:
$ npm install optimist npm http GET https://registry.npmjs.org/optimist npm http 200 https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz npm http GET https://registry.npmjs.org/wordwrap npm http 200 https://registry.npmjs.org/wordwrap npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz optimist@0.2.8 ../node_modules/optimist └── wordwrap@0.0.2
这些包将被安装到 node_modules 文件夹中:
$ ls -l ../node_modules/ total 0 drwxr-xr-x 10 ddewaele staff 340 Apr 1 18:54 optimist
本文需要安装如下的 node 包:
npm install winston npm install cradle npm install journey npm install optimist
运行教程
进入 bin 目录,通过下面命令来运行教程:
$ ./server -t 02couchdb -s The "sys" module is now called "util". It should have a similar interface. Pinpoint demo server listening for 02couchdb on http://127.0.0.1:8000
然后打开浏览器访问 http://127.0.0.1:8000/bookmarks ,将会看到如下的结果:
这表示服务已经启动并运行,为了在 CouchDB 中添加点测试数据,我们可以使用 http-console 控制台来访问 CouchDB 的 REST 服务。
安装 http-console
有一个非常棒的工具可以帮助你调试服务,该工具名为 http-console ,你可使用 npm 来安装:
sudo npm install -g http-console
然后就可以在命令行中执行该工具,不幸的是当我们执行该命令时报错了:
$ http-console node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead. at Function. (module.js:378:11) at Object. (/usr/local/lib/node_modules/http-console/bin/http-console:6:8) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40)
很麻烦,我们还需要手工编辑 /usr/local/lib/node_modules/http-console/bin/http-console 文件,然后删除下面这一行:
现在 http-console 就可以启动了,无需任何参数,它将连接到 http://localhost:8080 ,如果你需要指定服务器和端口,把它作为第一个参数传递给 http-console 即可。
请注意我们这里使用了 \json 命令用来设置正确的 content-type:
$ http-console http://127.0.0.1:8000 The "sys" module is now called "util". It should have a similar interface. > http-console 0.6.1 > Welcome, enter .help if you're lost. > Connecting to 127.0.0.1 on port 8000. http://127.0.0.1:8000/> \json http://127.0.0.1:8000/>
在 http-console 中,要执行 GET 请求只需要输入 GET /bookmarks 即可:
http://127.0.0.1:8000/> GET /bookmarks HTTP/1.1 200 OK Date: Sun, 01 Apr 2012 17:23:27 GMT Server: journey/0.4.0 Content-Type: application/json;charset=utf-8 Content-Length: 16 Connection: keep-alive { bookmarks: [] }
你也可以使用 JSON 的片段来执行 POST 请求:
http://127.0.0.1:8000/> POST /bookmarks ... { "url": "http://nodejs.org" } HTTP/1.1 200 OK Date: Thu, 05 Apr 2012 11:45:55 GMT Server: journey/0.4.0 Content-Type: application/json;charset=utf-8 Content-Length: 91 Connection: keep-alive { bookmark: { _id: 'WD-G-1', resource: 'Bookmark', url: 'http://nodejs.org' } }
然后再次执行 GET 请求,你就可以看到新插入的数据了:
http://127.0.0.1:8000/> GET /bookmarks HTTP/1.1 200 OK Date: Sun, 01 Apr 2012 17:23:27 GMT Server: journey/0.4.0 Content-Type: application/json;charset=utf-8 Content-Length: 16 Connection: keep-alive { bookmarks: [ { _rev: '1-cfced13a45a068e95daa04beff562360', _id: 'WD-G-1', resource: 'Bookmark', url: 'http://nodejs.org' } ] }