Heim > Web-Frontend > js-Tutorial > Ein einfaches Tutorial zur Verwendung von Node.js unter Mac OS_node.js

Ein einfaches Tutorial zur Verwendung von Node.js unter Mac OS_node.js

WBOY
Freigeben: 2016-05-16 15:53:14
Original
1884 Leute haben es durchsucht

Hier ist ein guter Einführungsartikel zu Node.js großartige Einführung in Node.js , der Ihnen eine sehr praktische Einführung in Node.js und CouchDB bietet und Ihnen ein Beispiel für die Implementierung von REST-Diensten für Perform CRUD gibt Operationen an Lesezeichen unter Verwendung von CouchDB als Datenbank.

In diesem Artikel erfahren Sie, wie Sie Node.js unter Mac OS

In diesem Artikel wird davon ausgegangen, dass Git bereits auf Ihrem Computer installiert ist. Wenn nicht, lesen Sie bitte diesen Artikel, um es zu installieren.

Node.js und npm installieren

Am einfachsten gehen Sie über die Seite „Node.js-Downloadbereich“ zur offiziellen Website von node.js und wählen das Installationsprogramm unter Mac aus, das Node.js und npm (Node-Paketmanager) installiert 🎜> Nach erfolgreicher Installation können Sie die Befehle node und npm verwenden.

CouchDB installieren

Da dieser Artikel CouchDB zum Speichern von Objekten erfordert, muss CouchDB ebenfalls installiert sein.

Die Installation von CouchDB ist etwas aufwändiger, da wir den Quellcode herunterladen und dann kompilieren müssen. Bitte führen Sie den folgenden Befehl aus



git clone https://github.com/mxcl/homebrew.git
cd homebrew/bin
brew install autoconf automake libtool
brew install couchdb
Nach dem Login kopieren
Wichtiger Hinweis: CouchDB hat zuvor ein Problem gemeldet, das Sie möglicherweise an der Installation hindert. Um dieses Problem zu beheben, müssen Sie die Datei ~/couch/homebrew/Library/Formula/couchdb.rb manuell bearbeiten 🎜>




Code kopieren

URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/source/1.1.1/apache-couchdb-1.1.1.tar.gz'
Homepage „http://couchdb.apache.org/“
md5 'cd126219b9cb69a4c521abd6960807a6'



Bitte beachten Sie, dass die Quelle in der URL gelöscht werden muss. Das endgültige Änderungsergebnis lautet wie folgt:




Code kopieren

URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz'
Homepage „http://couchdb.apache.org/“
md5 'cd126219b9cb69a4c521abd6960807a6'


Wenn der Installationsprozess hängen bleibt, müssen Sie zum Beenden STRG-C drücken und den folgenden Befehl ausführen, um es erneut zu versuchen:



Code kopieren

Der Code lautet wie folgt:./brew install -v couchdb

Weitere Informationen zur Installation von CouchDB unter Mac OS X finden Sie unter „CouchDB unter OSX installieren“.

Sobald CouchDB kompiliert ist, können wir ./couchdb manuell ausführen, um es zu starten. Sie können die Adresse http://127.0.0.1:5984/_utils in Ihrem Browser öffnen, um zu überprüfen, ob die CouchDB-Installation erfolgreich ist.

201562495503417.jpg (1009×575)

Tutorial herunterladen

Nachdem die erforderliche Software installiert wurde, fahren wir mit dem Node.js-Einführungsbeispiel fort.

Zuerst verwenden wir Git, um den Quellcode der Instanz zu erhalten

Git-Klon https://github.com/indexzero/nodejs-intro.git
Erstellen Sie eine CouchDB-Datenbank
Bevor wir mit dem Tutorial beginnen, müssen wir zunächst sicherstellen, dass CouchDB gestartet wurde, und dann den folgenden Befehl verwenden, um die Datenbank zu erstellen:

$ curl -X PUT http://127.0.0.1:5984/pinpoint-dev10
{"ok":true

Sie können http://127.0.0.1:5984/_utils in Ihrem Browser aufrufen, um die neu erstellte Datenbank anzuzeigen.

Hier gibt es auch eine tolle Anleitung zu CouchDB.

Tutorial starten

Die Node-JS-Instanz ist modular aufgebaut. Das lib-Verzeichnis enthält viele Module und das Serverskript befindet sich im bin-Verzeichnis.

Wenn wir beispielsweise das CouchDB-Tutorial starten möchten, können wir im bin-Verzeichnis den folgenden Befehl ausführen:


./server -t 02couchdb -s

Mit dem Parameter -t können Sie das auszuführende Modul im lib-Verzeichnis angeben, und mit dem Parameter -s können Sie die soeben erstellte Pinpoint-Dev-Datenbank festlegen.

sys – Util-Änderungen

Abhängig von der Version von Node.js werden möglicherweise die folgenden Fehler oder Warnungen angezeigt:



Code kopieren Der Code lautet wie folgt:
$ node -v
v0.7.7-pre

$ ./server -t 02couchdb -s

node.js:247
           throw e; // process.nextTick error, or 'error' event on first tick
              ^
Fehler: Das „sys“-Modul heißt jetzt „util“.
unter sys.js:1:69
bei NativeModule.compile (node.js:572:5)
bei Function.require (node.js:540:18)
bei Function._load (module.js:297:25)
bei Module.require (module.js:357:17)
at require (module.js:373:17)
bei Object. (/home/ubuntu/nodejs-intro/bin/server:3:11)
bei Module._compile (module.js:444:26)
bei Object..js (module.js:462:10)
bei Module.load (module.js:351:32)

Um dieses Problem zu vermeiden, müssen Sie alle Aufrufe „require("sys")` durch `require("util")` ersetzen

Knoten v0.6.14 gibt keine Fehlermeldung aus, sondern löst eine Warnung aus:



Code kopieren Der Code lautet wie folgt:
$ node -v
v0.6.14

$ ./server -t 02couchdb -s
Das „sys“-Modul heißt jetzt „util“. Es sollte eine ähnliche Schnittstelle haben.
Lokalisieren Sie den Demoserver, der auf 02couchdb auf http://127.0.0.1:8000 wartet

Führen Sie das Tutorial aus

Wenn Sie ein Tutorial ausführen, werden einige Fehler angezeigt:


Code kopieren Der Code lautet wie folgt:
$ ./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
Nach dem Login kopieren


这些包将被安装到 node_modules 文件夹中:

$ ls -l ../node_modules/
total 0
drwxr-xr-x 10 ddewaele staff 340 Apr 1 18:54 optimist
Nach dem Login kopieren


本文需要安装如下的 node 包:

npm install winston
npm install cradle
npm install journey
npm install optimist
Nach dem Login kopieren

运行教程

进入 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
Nach dem Login kopieren

然后打开浏览器访问 http://127.0.0.1:8000/bookmarks ,将会看到如下的结果:

复制代码 代码如下:
{"bookmarks":[]}

这表示服务已经启动并运行,为了在 CouchDB 中添加点测试数据,我们可以使用 http-console 控制台来访问 CouchDB 的 REST 服务。

安装 http-console

有一个非常棒的工具可以帮助你调试服务,该工具名为 http-console ,你可使用 npm 来安装:

sudo npm install -g http-console
Nach dem Login kopieren

然后就可以在命令行中执行该工具,不幸的是当我们执行该命令时报错了:

$ 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)
Nach dem Login kopieren


很麻烦,我们还需要手工编辑 /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/>

Nach dem Login kopieren

访问 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: []
}
Nach dem Login kopieren


你也可以使用 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'
  }
}
Nach dem Login kopieren


然后再次执行 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'
    }
  ]
}
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage