以前编写js的时候,总是在各种浏览器之间纠结,有时纠结兼容性问题,有时纠结性能或效率,很多时候看着后端工程师玩弄着各种数据心里就痒痒,只能感叹,js不给力。
不过在这一切都是浮云的世界,什么都在变,就和打麻将一样,风水轮流转,无论是Python还是Ruby,无论是BigTable或是Dynamo,就连CPU都尼玛从双核到四核,甚至把“显卡”也集成进去了,咱们的JS也应该发光发热了吧?
是的,一切都很给力,node就是这样,它就这样诞生了。
node,一个JS的运行环境,一个放在服务器上的JS运行环境,没错,他不是放在浏览器上,他是能像PHP一样跑在服务器上的运行环境。:)
我看到面前的PHP工程师笑了,我看到各位写C的同学笑了,好吧,正所谓拉车的用马,碾磨的用驴,面对日渐庞大的网络应用环境,面对无数用JS支撑起来的交互效果,面对数以万计想用JS干掉PHP的前端同学,让我们深究一下node究竟给不给力吧。
言归正传,无论是7天学会PHP还是7天学会C++第一步都是从“Hello World”,哦,不,是从安装环境开始,我们也入乡随俗,从这儿开始。
官方安装说明(https://github.com/joyent/node/wiki/Installation)
主要内容如下
git clone https://github.com/joyent/node.git cd node export JOBS=2 # optional, sets number of parallel commands. mkdir ~/local ./configure --prefix=$HOME/local/node make make install export PATH=$HOME/local/node/bin:$PATH
根据中国特色我们需要注意:
1、确认你的系统为Linux,Mac或者Solaris,如果你试图在Windows或者Unix上安装如果你试图在Windows或者Unix(除Mac OS外)上安装,请先尝试安装编译环境,可百度,一定很多。
2、安装libssl-dev和python,通常情况下他们都有。
3、如果是Mac,需要安装Xcode。
4、你也可以通过包管理器进行安装(https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager),看到这里我吐了。。。
5、因为最近墙有问题,所以大部分时候Git都很慢,请耐心等待或者翻墙。
好,现在我们
node -v
行了,到这里我们基本上就准备完成了,可以执行国际惯例,HelloWorld了。

console.log('hello world');
前端同学一定惊呼,我x,好熟悉啊,这不是我们经常在firebug里面用的console么?是的,node使用console来输出调试,当然如果你喜欢步进调试,喜欢逆向工程中不断的下断点来调试,你可以尝试Qleelulu这样帅气的debug,虽然我认为这样非常低效。
好了,现在可以运行也可以调试了,我和同学们都兴奋了,我要写个百度乐居(AD),我要写个新浪微博(AD),我要写个淘宝(AD),我X,我怒吼,不要慌!俗话说得好,工欲善其事,必先利其器,让我们看看nodeJS的wiki上还有什么?
nom(node package manager)
npm 是基于 node 的包管理器,通过npm,我们可以很容易的安装其它基于node的扩展
官网地址:https://github.com/isaacs/npm
安装npm很简单,一句话
curl http://npmjs.org/install.sh | sh
通常情况下这样是可以安装成功,但是我在Mac上这样安装总是失败,如果不幸的你也失败可参考下面的安装方式
git clone http://github.com/isaacs/npm.git cd npm sudo make install
备注:
查找npm提供的包有两种方式,第一种是通过”npm find”命令查找,第二种可通过http://search.npmjs.org/查找。
让我们从node 的 modules list页面中选择一个框架(https://github.com/joyent/node/wiki/modules)
为了简便开发,通常我们都会选择一个框架,就像Zend或者Rails一样,这里我选择的是Express,因为大家都说好。。。
Express官网:http://expressjs.com/
Express的安装非常简单,借助我们刚才安装的npm,既可直接安装了
npm install express
安装完毕之后,在开发目录下存在一个node_modules的文件夹用来存放这些扩展。
接下来,我们就可以使用express来开发写一个可以运行在浏览器上的Hello World了
var express = require('express'); var app = express.createServer(); app.get('/', function(req, res){ res.send('Hello World'); }); app.listen(3000);
然后访问本地http://127.0.0.1:3000/
好了,世界再一次被问好了。

至此,我们的准备工作已经完成,下一篇我们准备写点什么吧!



