Node.js是基于GoogleV8引擎的一个事件驱动I/O服务端JavaScript环境。它在2009年由Ryan Dahl发布,此后,迅速崛起成为一种新型服务端语言。

下面就逐步介绍Node.js。(有关Node.js的安装等过程就不介绍了,另外,建议大家的IDE使用WebStrom,真的很不错。)

和其它语言的入门一样,先得把Hello,World输出来(熟悉的感觉会增强信心)

console.log("Hello World");

Node.js是我学过的语言中写“Hello,World”最容易的了,不需要头文件,不需要包,也不需要标签。console是它的一个内嵌对象,logconsole的方法,用于在控制台输出日志。简单的Hello,World只是相当于作了一次深呼吸。

下面就开始进入第一天的重点,就是Node的非阻塞I/O事件驱动编程。其实如果学过JavaScript的话,对此会非常容易理解。先看示例:

/**
 * Created by Administrator on 2015/3/24.
 */
var count = 0;
//Node.Js使用计时器,事件编程示例
//到3000ms时自动调用响应函数,输出count,在此期间,系统会继续运行下一句程序(也就是递增count)
//而不会等在这里等3000ms
var fun1 = setTimeout(function(){
    console.log(count);
    //结束计算任务
    clearInterval(fun2); //关闭重复执行函数的函数fun2
},3000);
//setInterval允许以指定的时间间隔重复执行函数
var fun2 = setInterval(function(){
    count++;
},500);//count从0开始,没过500ms加1,在3000ms时达到5


上述就是一个事件驱动编程的示例:

系统执行到setTimeOut时,我们告诉系统,在3000ms后需要执行那个function(回调函数),然后系统就把这个function放进了它的事件循环里面,之后系统继续执行下面的语句,执行到setInterval时,我们又告诉系统每过500ms就把count1,系统就把这个事记在了它的事件循环里,然后等到时间一到,系统就会调用回调函数了。在此期间,它会继续你的下一项任务,而不会等待。