Node.js
是基于Google
的V8
引擎的一个事件驱动I/O
服务端JavaScript
环境。它在2009年由Ryan Dahl发布,此后,迅速崛起成为一种新型服务端语言。
下面就逐步介绍Node.js
。(有关Node.js
的安装等过程就不介绍了,另外,建议大家的IDE
使用WebStrom
,真的很不错。)
和其它语言的入门一样,先得把Hello,World
输出来(熟悉的感觉会增强信心)
console.log("Hello World");
Node.js是我学过的语言中写“Hello,World
”最容易的了,不需要头文件,不需要包,也不需要标签。console
是它的一个内嵌对象,log
是console
的方法,用于在控制台输出日志。简单的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
就把count
加1
,系统就把这个事记在了它的事件循环里,然后等到时间一到,系统就会调用回调函数了。在此期间,它会继续你的下一项任务,而不会等待。