虽说NodeJS已经火了快六七年了,但我是从一年前才知道NodeJS的。那时候技术老大像疯了似的突然说,你们做的网站挺烂的,架构要改,要用NodeJS。
其实公司的门户一开始的确挺烂,那时因为技术太落后了,很多东西还是form之间来回跳转,JSP做的,界面样子不好看,尤其CMS系统几乎没有任何美感可言。但是老大说要换NodeJS时,这个网站已经在我的带领下做了两轮优化,不仅界面更好,CMS使用jQuery EasyUI全部重写,界面好看了,还多子更多编辑功能,但老大并没关注,他根本没看到我做的CMS系统,也没有仔细地看网站的代码,只是瞄一眼界面,就说不好,实际上他只是不满意界面设计而已。
那时,公司的门户算是web2.0时代的东西吧,脚本样式压缩了,域名也分离了,缓存也做了,JS脚本整个改写了,连后台架构也调整了,数据库也做了读写分享,复杂的业务均做了优化,性能整个提升了很多。所以老大让换NodeJS还有些不情愿。毕竟使用一个员工不熟的技术去重写一个系统是很费时的,从项目的角度来看也暂时没有必要。
但不管怎么说,总算开始接触NodeJS,至少要先了解它,才能知道它的优缺点,才能有更全面的考量。
第一个程序当然是Hello World!初步感受是没有觉得比Nginx这样的web服务器更有优势,而且单线程的容错力不够好,抛出个异常没捕获进程挂掉,整个网站就摊了(实际上NodeJS是可以设计统一捕获异常的)。后续又看了一些connect,express之类的东西,但终究是老大随口一说,没有安排后续的培训和开发计划,也就最终没用起来。
如今随着NodeJS的扩展越来越多,版本越来越高,而且与很多先进的框架结合的很好,有必要更深入的去学一学。
还是先从Hello World开始。(windows环境)
首先,下载node5.3的安装包,安装成功后把node的根目录加到环境变量里,这样可以在任何目录都能执行node和npm命令了。
建一个work目录,做为工作目录,建一个app.js文件,内容如下:
var http=require(“http”);
http.createServer(function(req,res){
res.writeHead(200,{‘Content-Type’:’text/plain’});
res.end(‘Hello,World!\n’);
}).listen(8124,’127.0.0.1’);
console.log(‘Server running at http://127.0.0.1:8124‘);
ok,开发完毕,cmd到work目录下,运行:
node app.js
好了,服务已启动,在浏览器里输入http://127.0.0.1:8124就看到hello world了。
基础的api没多大变化,依旧那么简单。可以把Node看成是一个服务器,它使用V8引擎,支持许多JS写成的模块,可以自由的订制web服务器。上面的代码就启动了一个web服务器,只是处理比较简单而已。
后面咱们再继续更复杂的功能。