Node.js是基于Google的V8引擎的一个事件驱动I/O服务端JavaScript环境。它在2009年由Ryan Dahl发布,此后,迅速崛起成为一种新型服务端语言。
下面就逐步介绍Node.js。(有关Node.js的安装等过程就不介绍了,另外,建议大家的IDE使用WebStrom,真的很不错。)
和其它语言的入门一样,先得把Hello,World输出来(熟悉的感觉会增强信心)
1
2 1console.log("Hello World");
2
Node.js是我学过的语言中写“Hello,World”最容易的了,不需要头文件,不需要包,也不需要标签。console是它的一个内嵌对象,log是console的方法,用于在控制台输出日志。简单的Hello,World只是相当于作了一次深呼吸。
下面就开始进入第一天的重点,就是Node的非阻塞I/O事件驱动编程。其实如果学过JavaScript的话,对此会非常容易理解。先看示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 1/**
2 * Created by Administrator on 2015/3/24.
3 */
4var count = 0;
5//Node.Js使用计时器,事件编程示例
6//到3000ms时自动调用响应函数,输出count,在此期间,系统会继续运行下一句程序(也就是递增count)
7//而不会等在这里等3000ms
8var fun1 = setTimeout(function(){
9 console.log(count);
10 //结束计算任务
11 clearInterval(fun2); //关闭重复执行函数的函数fun2
12},3000);
13//setInterval允许以指定的时间间隔重复执行函数
14var fun2 = setInterval(function(){
15 count++;
16},500);//count从0开始,没过500ms加1,在3000ms时达到5
17
上述就是一个事件驱动编程的示例: 系统执行到setTimeOut时,我们告诉系统,在3000ms后需要执行那个function(回调函数),然后系统就把这个function放进了它的事件循环里面,之后系统继续执行下面的语句,执行到setInterval时,我们又告诉系统每过500ms就把count加1,系统就把这个事记在了它的事件循环里,然后等到时间一到,系统就会调用回调函数了。在此期间,它会继续你的下一项任务,而不会等待。