在苹果操作系统下使用Node.js的简单教程
这里有一篇很好的介绍文章,很棒的nodejs intro,会给大家非常方便的介绍Node.js和CouchDB,并给出一个实现REST服务执行书签CRUD操作的例子,使用CouchDB作为数据库。
在本文中,我们将介绍如何在MAC OS X下安装并开始使用Node.js,这个过程大约需要30分钟,其中我们还将安装CouchDB并实现基于CouchDB的REST API。
本文假设您的机器上已经安装了Git。如果没有,请参考本文进行安装。
安装node.js和npm
最简单的方法就是使用nodejs官方网站上的nodejs下载部分页面,选择Mac下的安装程序,会在你的机器上安装node.js和npm (node package manager)。成功安装后,您可以使用节点和npm命令。
安装CouchDB
因为本文需要使用CouchDB来存储对象,所以也需要安装CouchDB。
安装CouchDB有点麻烦,因为我们需要下载源代码并编译I,在此之前,我们需要先安装Homebrew。请执行以下命令:
Git克隆https://github.com/mxcl/homebrew.gitcd家酿/binbrew install auto info automake libtool brew install CouchDB重要提示:couch db之前报告的一个问题可能会阻止您安装。要解决这个问题,需要手动编辑文件~/couch/自制程序/库/公式/couchdb.rb,编辑内容如下:复制代码如下:需要' formula '类couch db formula URL ' http://www . Apache . org/dyn/closer . CGI?path=couch db/source/1 . 1 . 1/Apache-couch db-1 . 1 . 1 . tar . gz ' home page ' http://couch db . Apache . org/' MD5 ' CD 126219 B9 CB 69 a4 c 521 ab d 6960807 a 6 '
请注意,url中的来源需要删除,最终修改结果如下:复制代码如下:需要' formula '类couch db formula URL ' http://www . Apache . org/dyn/closer . CGI?path=couch db/1 . 1 . 1/Apache-couch db-1 . 1 . 1 . tar . gz ' home page ' http://couch db . Apache . org/' MD5 ' CD 126219 B9 CB 69 a4 c 521 ab d 6960807 a 6 '
如果安装过程暂停,则需要CTRL-C终止并执行以下命令重试:复制代码如下:/brew install -v couchdb
有关在MAC OS X上安装CouchDB的更多信息,请参见“在OS x上安装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已经启动。然后使用以下命令创建数据库:$ curl-xput http://127 . 0 . 0 . 1:5984/pinch-dev 10 { ' ok ' : true }
您可以在浏览器中访问http://127.0.0.1:5984/_utils来查看新创建的数据库。
还有一个很好的CouchDB指南。
开始教程
节点js实例以模块化的方式构建,lib目录包含许多模块,服务器脚本在bin目录中。
例如,要启动CouchDB教程,我们可以在bin目录中执行以下命令:/server -t 02couchdb -s
-t参数允许您指定lib目录中要执行的模块,而-s参数用于设置我们刚刚创建的pinpoint-dev数据库。
系统更改
根据Node.js的版本不同,你可能会看到如下的错误或者是警告:复制代码代码如下:美元节点-vv0.7.7-pre$ ./server-t 02沙发db-snode。js :247掷e;//process.nextTick错误,或第一个滴答声上的“错误”事件^error:"sys "模块现在被称为util .在函数处编译。在对象的要求(模块. js:373:17)处的要求(模块. js:357:17)处加载(模块. js:297:25).(/home/Ubuntu/nodejs-intro/bin/server :336011)在模块.在对象处编译(模块).在模块加载处
为了避免这个问题,你需要将所有调用`需要(“系统”)”替换成` require('util ')
节点v0.6.14不会抛出错误信息,但会提示警告:复制代码代码如下:美元节点-vv0.6.14美元/server-t 02沙发数据库-现在将“系统”模块称为util .它应该有一个类似的接口。查明演示服务器监听http://127.0.0上的02沙发分贝.56860 .88888888861
运行教程
当你运行某个教程时,会提示一些错误:
复制代码代码如下:$ ./服务器02沙发hdb“sys”模块现在称为util .它应该有一个类似的接口。节点。js :201掷e;//process.nextTick错误,或第一个滴答声上的“错误”事件^Error:在函数中找不到模块可选.函数处的_ resolveFilename(模块。js :332:11).在对象的要求(模块。js 3:2793:17)处的模块。需要(模块。js :354:17)处加载(模块. js:279:25).(/user/ddewaele/project/Node/nodejs-intro/bin/server :5:12)在模块。在对象处编译(模块. js:441:26).在功能上加载模块。在数组0(模块. js)中加载
该教程包含很多依赖,我们需要使用国家预防机制来下载这些依赖的包。安装结节包
节点包(依赖项)可通过国家预防机制命令来安装,例如:
$ NPM安装选项tnpm http GET https://registry.npmjs.org/optimistnpm http 200 https://registry.npmjs.org/optimistnpm http GET https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgznpm http 200 https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgznpm http GET https://registry.npmjs.org/wordwrapnpm http 200 https://registry.npmjs.org/wordwrapnpm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgznpm http 200 https://注册表。npmjs。org/自动换行/-/自动换行-0。0 .2 .tgz[电子邮件保护]./node_modules/optimist[电子邮件保护]这些包将被安装到节点_模块文件夹中:
$ ls -l./node _ modules/总计0 drwxr-xr-x 10 ddewaele员工340 Apr 1 18:54本文需要安装如下的结节包:
国家预防机制安装winstonnpm安装托架国家预防机制安装journeynpm安装乐观者
运行教程
进入容器目录,通过下面命令来运行教程:
$ ./server-t 02沙发数据库-现在将“系统”模块称为util .它应该有一个类似的接口。查明演示服务器监听http://127.0.0上的02沙发分贝.56860 .88888888861然后打开浏览器访问http://127 .0 .0 .1:8000/书签,将会看到如下的结果:复制代码代码如下:{ '书签' :[]}
这表示服务已经启动并运行,为了在CouchDB中添加点测试数据,我们可以使用http-控制台控制台来访问CouchDB的休息服务。
安装http-控制台
有一个非常棒的工具可以帮助你调试服务,该工具名为http-控制台,你可使用国家预防机制来安装:
sudo npm安装-g http-控制台然后就可以在命令行中执行该工具,不幸的是当我们执行该命令时报错了:
$ http-控制台节点。js :201掷e;//process.nextTick错误,或第一个滴答声上的“错误”事件^Error:要求路径.被删除。请改用节点_模块文件夹或节点路径环境变量。在函数中。(模块。js:378:11)在对象(/usr/local/lib/node _ modules/http-console/bin/http-console :6:8)在模块.在对象处编译(模块. js:441:26).在功能上加载模块。在事件发射器的数组。0(模块。js :308336010)处加载(模块. js:479:10)._ tick回调(节点。js :1923:40)很麻烦,我们还需要手工编辑/usr/local/lib/node _ modules/http-console/bin/http-console文件,然后删除下面这一行:复制代码代码如下:要求。路径。unshift(路径。join(_ _ dirname,'.',' lib ');
现在http-控制台就可以启动了,无需任何参数,它将连接到http://localhost:8080,如果你需要指定服务器和端口,把它作为第一个参数传递给http-控制台即可。
请注意我们这里使用了\json命令用来设置正确的内容类型:
$ http-控制台http://127。0 .0 .1:8000“系统”模块现在称为util .它应该有一个类似的接口http-控制台0.6.1欢迎使用,进入。如果你迷路了,请帮忙。连接到端口8000上的127.0.0.1。http://127 .0 .0 .1:8000/\ js 3358127。0 .0 .13:8000/访问休息服务在http-控制台中,要执行得到请求只需要输入获取/书签即可:
http://127 .0 .0 .1:8000/GET/bookmarksHTTP/1.1 200 okdate : Sun,2012年四月01日173:23:27 GMT server :三重/0。4 .0内容类型:应用/JSON;charset=utf-8内容-Length : 16连接:保持活动状态{书签s :[]}你也可以使用JSON的片段来执行邮政请求:
http://127 .0 .0 .1:8000/POST/书签.{ ' URL ' : ' http://nodejs。org ' } HTTP/1.1 200 okdate : Thu,2012年05月年四月11:45:55 GMT server : travel/0。4 .0内容类型:应用/JSON;charset=utf-8内容长度: 91连接:保持活动状态{ Bookmark : { _ id : ' WD-G-1 ',resource: 'Bookmark ',url: 'http://nodejs.org' }}然后再次执行得到请求,你就可以看到新插入的数据了:
http://127 .0 .0 .1:8000/GET/bookmarksHTTP/1.1 200 okdate : Sun,2012年四月01日173:23:27 GMT server :三重/0。4 .0内容类型:应用/JSON;charset=utf-8 content-length : 16 connection : keep-alive { bookmarks :[{ _ rev : ' 1-cfce d13 a 45 a 068 e 95 da a04 beff 562360 ',_id: 'WD-G-1 ',resource: ' Bookmark ',url: 'http://nodejs.org' } ]
版权声明:在苹果操作系统下使用Node.js的简单教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。