こちらは、Node.js に関する優れた入門記事です。素晴らしい Nodejs の紹介 では、Node.js と CouchDB についての非常に便利な紹介と、Perform CRUD 用の REST サービスの実装例を示します。 CouchDB をデータベースとして使用したブックマークの操作。
この記事では、Mac OS X で Node.js をインストールして使用を開始する方法を紹介します。このプロセスには約 30 分かかります。また、CouchDB をインストールし、CouchDB に基づいて REST API を実装します。
この記事は、Git が既にマシンにインストールされていることを前提としています。そうでない場合は、この記事 を参照してインストールしてください。
node.js と npm をインストールします
最も簡単な方法は、nodejs ダウンロード セクション ページから、node.js 公式 Web サイトにアクセスし、Mac でインストーラーを選択することです。これにより、Node.js と npm (ノード パッケージ マネージャー) がインストールされます。 🎜>
インストールが成功したら、node および npm コマンドを使用できるようになります。
CouchDB をインストールします
この記事ではオブジェクトを保存するために CouchDB が必要であるため、CouchDB もインストールする必要があります。CouchDB のインストールは、ソース コードをダウンロードしてコンパイルする必要があるため、少し面倒です。その前に、次のコマンドを実行してください。
git clone https://github.com/mxcl/homebrew.git cd homebrew/bin brew install autoconf automake libtool brew install couchdb
Mac OS X への CouchDB のインストールの詳細については、「OSX への CouchDB のインストール」をお読みください。
CouchDB がコンパイルされたら、./couchdb を手動で実行して起動できます。ブラウザでアドレス http://127.0.0.1:5984/_utils を開いて、CouchDB のインストールが成功したかどうかを確認できます。
チュートリアルをダウンロード
必要なソフトウェアがインストールされたので、Node.js の導入例を続けてみましょう。
まず、Git を使用してインスタンスのソース コードを取得します
git clone https://github.com/indexzero/nodejs-intro.git
CouchDB データベースを作成します
チュートリアルを開始する前に、CouchDB データベースを作成する必要があります。まず CouchDB が起動していることを確認してから、次のコマンドを使用してデータベースを作成します。
$カール -X PUT http://127.0.0.1:5984/pinpoint-dev10
{"ok":true}
CouchDB に関する優れたガイドもここにあります。
チュートリアルを開始します
node js インスタンスはモジュール方式で構築されており、lib ディレクトリには多くのモジュールが含まれており、サーバー スクリプトは bin ディレクトリにあります。たとえば、CouchDB チュートリアルを開始したい場合は、bin ディレクトリで次のコマンドを実行できます:
./server -t 02couchdb -s
sys - ユーティリティの変更
Node.js のバージョンによっては、次のエラーまたは警告が表示される場合があります:
ノード 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' } ] }