ホームページ > ウェブフロントエンド > jsチュートリアル > Mac OS で Node.js を使用するための簡単なチュートリアル_node.js

Mac OS で Node.js を使用するための簡単なチュートリアル_node.js

WBOY
リリース: 2016-05-16 15:53:14
オリジナル
1882 人が閲覧しました

こちらは、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
ログイン後にコピー
重要な注意事項: CouchDB は、インストールできない可能性がある問題を以前に報告しました。この問題を解決するには、~/couch/homebrew/Library/Formula/couchdb.rb ファイルを手動で編集する必要があります。編集内容は次のとおりです。 🎜>




コードをコピーします コードは次のとおりです:requir 'formula'
クラス Couchdb
URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/source/1.1.1/apache-couchdb-1.1.1.tar.gz'
ホームページ「http://couchdb.apache.org/」
md5 'cd126219b9cb69a4c521abd6960807a6'


URL 内のソースを削除する必要があることに注意してください。最終的な変更結果は次のとおりです。




コードをコピーします コードは次のとおりです:requir 'formula'
クラス Couchdb
URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz'
ホームページ「http://couchdb.apache.org/」
md5 'cd126219b9cb69a4c521abd6960807a6'


インストールプロセスがハングした場合は、CTRL-C を押して終了し、次のコマンドを実行して再試行する必要があります:



コードをコピーします コードは次のとおりです:./brew install -v couchdb

Mac OS X への CouchDB のインストールの詳細については、「OSX への CouchDB のインストール」をお読みください。

CouchDB がコンパイルされたら、./couchdb を手動で実行して起動できます。ブラウザでアドレス http://127.0.0.1:5984/_utils を開いて、CouchDB のインストールが成功したかどうかを確認できます。

201562495503417.jpg (1009×575)

チュートリアルをダウンロード

必要なソフトウェアがインストールされたので、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}

ブラウザで http://127.0.0.1:5984/_utils にアクセスすると、新しく作成されたデータベースを確認できます。

CouchDB に関する優れたガイドもここにあります

チュートリアルを開始します

node js インスタンスはモジュール方式で構築されており、lib ディレクトリには多くのモジュールが含まれており、サーバー スクリプトは bin ディレクトリにあります。

たとえば、CouchDB チュートリアルを開始したい場合は、bin ディレクトリで次のコマンドを実行できます:


./server -t 02couchdb -s

-t パラメータを使用すると、実行する lib ディレクトリ内のモジュールを指定できます。-s パラメータは、作成したばかりの pinpoint-dev データベースを設定するために使用されます。

sys - ユーティリティの変更

Node.js のバージョンによっては、次のエラーまたは警告が表示される場合があります:



コードをコピー コードは次のとおりです:
$ node -v
v0.7.7-pre

$ ./server -t 02couchdb -s

ノード.js:247
throw e; // process.nextTick エラー、または最初のティック時の 'error' イベント
^
エラー: 「sys」モジュールは「util」と呼ばれるようになりました。
sys.js:1:69
で NativeModule.compile (node.js:572:5)
で Function.require (node.js:540:18)
で Function._load (module.js:297:25)
で Module.require (module.js:357:17)
で 要求時 (module.js:373:17)
オブジェクトで (/home/ubuntu/nodejs-intro/bin/server:3:11)
Module._compile (module.js:444:26)
で Object..js (module.js:462:10)
で Module.load (module.js:351:32)

この問題を回避するには、すべての呼び出し `require("sys")` を `require("util")` に置き換える必要があります

ノード v0.6.14 はエラー メッセージをスローしませんが、警告を表示します:



コードをコピー コードは次のとおりです:
$ node -v
v0.6.14

$ ./server -t 02couchdb -s
「sys」モジュールは「util」と呼ばれるようになり、同様のインターフェースを持つはずです。
http://127.0.0.1:8000
で 02couchdb をリッスンしているピンポイント デモ サーバー

チュートリアルを実行する

チュートリアルを実行すると、いくつかのエラーが表示されます:


コードをコピー コードは次のとおりです:
$ ./server 02couchdb
The "sys" module is now called "util". It should have a similar interface.

node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'optimist'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at Object. (/Users/ddewaele/Projects/Node/nodejs-intro/bin/server:5:12)
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)

该教程包含很多依赖,我们需要使用 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 ,将会看到如下的结果:

复制代码 代码如下:
{"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 文件,然后删除下面这一行:

复制代码 代码如下:
require.paths.unshift(path.join(__dirname, '..', 'lib'));

现在 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/>

ログイン後にコピー

访问 REST 服务

在 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'
    }
  ]
}
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート