日期:2014-05-16  浏览次数:20399 次

我与node.js

Email:longsu2010 at yeah dot net 

从第一次接触node.js到现在时间不短了,那时node.js还是0.5版本,现在最新版是0.10版本。从这个版本号你可以发现node.js的版本号很有趣,需要你注意,如0.8.5版本低于0.8.14版本。


当时也就是因为好奇所以拿来玩玩,记得是和HTML5的WebSocket一起玩的,现如今WebSocket在我的工作中成为了最重要的数据通道,而node.js也有它发挥的空间。


我理解的node.js是给google的v8封装IO和网络等服务器端程序应该具备的功能,像当年的AJAX。所以指定js靠的是v8,因此事件驱动和回调是node.js的亮点,异步在node.js中随处可见。需要说的是v8却是很强大,现在mongodb也开始用v8了。


由于工作需要,我花了大量的时间研究dojo。像大家知道的那样dojo和node.js都遵循commonJS规范,或者说基本遵循或者参考吧(因为不完全不遵循),不细究这个问题了,但是dojo可以运行在node.js环境中却是不争的事实,他们有太多的相似之处。加上我的js水平还不错(我是靠js吃饭的,外加HTML5、CSS3)所以写在node.js中运行的代码很顺手,但只是最近才开始写,再花费一些时间把node.js的内置模块研究透还能更上一层楼。


现在工作中也会使用到node,dojo的构建可以使用,dojo的主题生成会用到。dojo构建脚本在检测执行环境时若检测到node的存在会优先使用,否则使用java环境,有趣的是在我的工作机使用java构建一次需要800-900秒,而使用node值需要100-200秒,想来这是node异步IO的功劳吧。dojo主题生成使用的是less,用node执行解析less的脚本来生成css。因为其行为与工作预期不相符,随意做了适当的修改。


我给想学习node.js中编程的亲们几点建议:
1、使用linux而不是windows。
2、JavaScript基础必须好,或者说EcmaScript必须好。
3、弄清楚node有那些部分,学习任何东西这都是必要的。
4、从基础开始,胖子是慢慢吃出来的。
5、弄清楚浏览器环境与node环境的不同,比如声明变量忘记var分别会怎么样。
6、出现问题时尝试着读源码。