Maison > interface Web > js tutoriel > Un tutoriel simple sur l'utilisation de Node.js sous Mac OS_node.js

Un tutoriel simple sur l'utilisation de Node.js sous Mac OS_node.js

WBOY
Libérer: 2016-05-16 15:53:14
original
1887 Les gens l'ont consulté

Voici un bon article d'introduction sur Node.js excellente introduction à Node.js , qui vous donnera une introduction très pratique à Node.js et CouchDB, et vous donnera un exemple pour implémenter les services REST pour Perform CRUD opérations sur les signets, en utilisant CouchDB comme base de données.

Cet article explique comment installer et commencer à utiliser Node.js sous Mac OS X. Ce processus prendra environ 30 minutes. Nous installerons également CouchDB et implémenterons l'API REST basée sur CouchDB.

Cet article suppose que Git est déjà installé sur votre machine. Sinon, veuillez vous référer à cet article pour l'installer.

Installer node.js et npm

Le moyen le plus simple est d'aller sur le site officiel de node.js via la section de téléchargement de nodejs et de sélectionner l'installateur sous Mac, qui installera Node.js et npm (gestionnaire de packages de nœuds Une fois l'installation réussie, vous pouvez utiliser les commandes node et npm.

Installer CouchDB

Étant donné que cet article nécessite que CouchDB stocke les objets, CouchDB doit également être installé.

L'installation de CouchDB est un peu plus compliquée, car nous devons télécharger le code source puis le compiler. Avant cela, nous devons installer Homebrew.



git clone https://github.com/mxcl/homebrew.git
cd homebrew/bin
brew install autoconf automake libtool
brew install couchdb
Copier après la connexion
Remarque importante : CouchDB a précédemment signalé un problème qui pourrait vous empêcher de l'installer. Pour résoudre ce problème, vous devez modifier manuellement le fichier ~/couch/homebrew/Library/Formula/couchdb.rb. Le contenu de la modification est le suivant : <. 🎜>




Copier le code Le code est le suivant :exiger 'formule'
classe Couchdb < URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/source/1.1.1/apache-couchdb-1.1.1.tar.gz'
page d'accueil "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'



Veuillez noter que la source dans l'url doit être supprimée. Le résultat final de la modification est le suivant :




Copier le code

Le code est le suivant :exiger 'formule' classe Couchdb < URL 'http://www.apache.org/dyn/closer.cgi?path=couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz'
page d'accueil "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'


Si le processus d'installation se bloque, vous devez CTRL-C pour terminer et exécuter la commande suivante pour réessayer :


Copier le code

Le code est le suivant :./brew install -v couchdb

Pour plus d'informations sur l'installation de CouchDB sur Mac OS X, veuillez lire « Installer CouchDB sur OSX ».

Une fois CouchDB compilé, nous pouvons exécuter manuellement ./couchdb pour le démarrer. Vous pouvez ouvrir l'adresse http://127.0.0.1:5984/_utils dans votre navigateur pour vérifier si l'installation de CouchDB est réussie.

201562495503417.jpg (1009×575)

Télécharger le didacticiel

Maintenant que le logiciel requis a été installé, continuons avec l'exemple d'introduction à Node.js.

Nous utilisons d'abord Git pour obtenir le code source de l'instance

git clone https://github.com/indexzero/nodejs-intro.git
Créer une base de données CouchDB
Avant de commencer le didacticiel, nous devons créer une base de données CouchDB. Assurez-vous d'abord que CouchDB a été démarré, puis utilisez la commande suivante pour créer la base de données :

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

Vous pouvez visiter http://127.0.0.1:5984/_utils dans votre navigateur pour voir la base de données nouvellement créée.

Il existe également un excellent guide sur CouchDB ici.

Démarrer le tutoriel

L'instance node js est construite de manière modulaire. Le répertoire lib contient de nombreux modules, et le script du serveur se trouve dans le répertoire bin.

Par exemple, si nous voulons démarrer le tutoriel CouchDB, nous pouvons exécuter la commande suivante dans le répertoire bin :

./server -t 02couchdb -s

Le paramètre -t vous permet de spécifier le module dans le répertoire lib à exécuter, et le paramètre -s est utilisé pour définir la base de données pinpoint-dev que nous venons de créer.

sys - modifications d'utilisation

Selon la version de Node.js, vous pouvez voir les erreurs ou avertissements suivants :

Copier le code Le code est le suivant :
$ node -v
v0.7.7-pré

$ ./server -t 02couchdb -s

node.js:247
           throw e ; // erreur process.nextTick ou événement « erreur » au premier tick
              ^
Erreur : Le module "sys" s'appelle désormais "util".
sur sys.js : 1:69
sur NativeModule.compile (node.js:572:5)
à Function.require (node.js:540:18)
à Function._load (module.js:297:25)
à Module.require (module.js:357:17)
à require (module.js:373:17)
à Objet (/home/ubuntu/nodejs-intro/bin/server:3:11)
à Module._compile (module.js:444:26)
à Object..js (module.js:462:10)
sur Module.load (module.js:351:32)

Pour éviter ce problème, vous devez remplacer tous les appels `require("sys")` par `require("util")`

Le nœud v0.6.14 ne générera pas de message d'erreur, mais affichera un avertissement :

Copier le code Le code est le suivant :
$ node -v
v0.6.14

$ ./server -t 02couchdb -s
Le module "sys" s'appelle désormais "util". Il devrait avoir une interface similaire.
Serveur de démonstration Pinpoint écoutant 02couchdb sur http://127.0.0.1:8000

Exécutez le tutoriel

Lorsque vous exécutez un didacticiel, certaines erreurs s'afficheront :


Copier le code Le code est le suivant :
$ ./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
Copier après la connexion


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

$ ls -l ../node_modules/
total 0
drwxr-xr-x 10 ddewaele staff 340 Apr 1 18:54 optimist
Copier après la connexion


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

npm install winston
npm install cradle
npm install journey
npm install optimist
Copier après la connexion

运行教程

进入 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
Copier après la connexion

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

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

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

安装 http-console

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

sudo npm install -g http-console
Copier après la connexion

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

$ 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)
Copier après la connexion


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

Copier après la connexion

访问 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: []
}
Copier après la connexion


你也可以使用 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'
  }
}
Copier après la connexion


然后再次执行 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'
    }
  ]
}
Copier après la connexion

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal