mac下node js安装
一向不喜欢追求刚刚新鲜出炉的事物的我,终于在node js出来一年后开始迈出脚步。
废话少说,先把环境给配置好。google "mac node",出来几条结果,提供的方法基本一样,遂开始实践之。附google后的安装步骤:
1、安装xcode、git;
2、使用git将node源码拉到本地 git://github.com/ry/node.git
3、./configure
4、make
5、make install
还好之前有装过xcode、git,要不然光下载安装个xcode,今天晚上的时间完全报销(托网络不给力的福)。有了这两个玩意,安装应该轻松搞定。然而却出来几个问题,首先./configure的时候,有几个东西没有: openssl -> not found, library -> not found, fdatasync(2) with c++ -> no。然后make的时候悲催的报错了:build failed: -> task failed(err #1):...。
之后,我又重复了好几遍,都是没有成功,开始怀疑是否是openssl, library rt缺失导致的,准备装openssl神马的,顺便群里面问了句,有朋友建议使用node 0.6.1,然后跑到github上,download了最新版本的源码,重复google上的安装步骤,'build' finished successfully, 'install' finished successfully,搞定!原来是版本问题,当然具体是版本内部的什么问题,这里先不深究了,helloworld先出来再说。
安装成功后,将官网上的helloworld程序copy一份保存为helloworld.js到node安装目录下,
var http = require('http');
http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8808, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8808');
运行node helloworld.js,就能在命令窗口中(控制台)下看到"Server running at http://127.0.0.1:8808"的信息,在浏览器中输入localhost:8808,页面不能连接,悲催了,怎么回事。跑到控制台下看,报了一个错:The 'sys' module is now called 'util'. It should have a similar interface.貌似是要实现某个接口,可是不对啊,这可是官方提供的helloworld啊,还能出错。肿么回事?莫非又是版本问题?node -v之,版本为node-v0.6.2 pre,乖乖,0.6.2的最新版本,而我跑的是0.6.1的helloworld,出错了。既然官网目前提供了0.6.1的文档,还是先看看0.6.1吧。
好吧,又有重装了。这次吸取教训,从官网上把0.6.1版本驼下来,然后重复以上步骤,make install的时候又出错了,需要删除刚才安装的0.6.2 pre版本,因为它扎用了usr/local/include/node目录,其下的config.h不能重写。乖乖,没有sudo,没有权限,那就sudo拿到管理员权限,重新sudo make install,安装成功了。
继续跑node helloworld.js,console正常,并能访问localhost:8808,OK,终于搞定。也算一波三折。
留心一下,如果你的程序中有代码错误,控制台还是会先打印出console信息,然后再给你报出错误信息,比如使用0.6.2 pre版本报的那个错The 'sys' module is now called 'util'. It should have a similar interface,再比如你把res.writeHead携程rs.writeHead。