大名鼎鼎的JavaScript引擎V8想必不少朋友都知道,即使你不知道V8的名字,总听说过Google Chrome浏览器的JavaScript引擎是最快的吧.其实Google Chrome浏览器用的就是V8.今天我们介绍的一款开源软件也正是在V8的基础上发展而来的,不同的是,它不是运行于浏览器中,而是独立出来,用于其它领域,比如说应用服务器什么的。
言过正传,Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始。他。Node为创建http服务器作了优化,所以你在网上看到的大部分示例和库都是集中在web上(http框架、模板库等)。它的官方简介如下:
“Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”
翻译过来就是:“Node.js是建立在Chrome浏览器的JavaScript运行时基础上,用于快速构建可扩展的网络应用的平台。 Node.js的使用事件驱动,非阻塞I / O模型,使得它量轻高效,可完美的用于分布式环境下的数据密集型、实时应用程序。”
这里需要强调的是,它还很“新”,目前官方的版本是“v0.6.12”,也就是说还有许多需要改进和完善的地方,当然这并不妨碍我们通过一个“HelloWorld”测试程序来窥其一斑,也不会妨碍大牛们通过对其特点的发现和源码的分析,学习和借鉴其先进的思想。有人说互联网时代,应用程序永远都是Beta版,我不否认这样做的积极意义,但请务必注意,如果你今天就打算将其用于实际应用的话,请先做好必要的测试,当你发现了它足够多的BUG和限制条件后,也许你才有条件稳妥的将其应用于实际。请相信,“Node.js”就是这样的Beta版。
一、首先让我们建立起环境:1、到“”处下载最版本,有Windows版和Macintosh版安装包,还有源码包,我下载的是Windows版的安装包;
2、安装运行环境,对Windows版来说简单方便,执行安装包即可。它会默认安装到“Program Files”目录下。
二、建立HelloWorld测试服务器程序:用记事本新建一个JavaScript文件:svr.js
1 var http = require('http'); //请求http模块,以下程序中,变量http代表该模块
2 var getCount=0; //为测试使用的变量,用于记录客户端请求次数
3
4 console.time('[HelloWorldSvr][Start]'); //开始服务启动计时器,命名并开始一个计时器,将来通过其名称来结束该计时器,并输出到控制台
5
6 http.createServer(function (request, response) { //创建一个http服务器,唯一的参数是一个匿名的请求响应函数,如下
7
getCount++; //请求计数器加1
8
var getNo=getCount; //记录本次请求的序号,方便日志输出
9
10
console.time('[HelloWorldSvr][Get]'+getNo); //开始请求响应计时器
11
12
console.log(request.url); //向控制台输出请求的路径
13
//以下多行简单的忽略请求的路径,直接向http返回一段html文本
14
response.writeHead(200, {'Content-Type': 'text/html'});
15
response.write('<html><body>');
16
response.write('<h1>*** Node.js ***</h1>');
17
response.write('<h2>Hello World!'+getNo+'</h2>');
18
response.end('</body></html>');
19
console.timeEnd('[HelloWorldSvr][Get]'+getNo); //结束请求相应计时器,并向控制台输出本次请求相应花费的时间
20 }).listen(8124); //开始侦听8124端口,也就是说,从此刻开始本机8124端口上建立起了一个简单的http服务器,不管如何请求,都返回一段简单的html文本
21
22 console.log('[HelloWorldSvr][Start] running at :8124/'); //向控制台输出服务启动的信息
23 console.timeEnd('[HelloWorldSvr][Start]'); //结束服务启动计时器,并向控制台输出服务启动花费的时间
以上就是构建一个简单的http服务器的全部代码,这个服务启侦听8124端口,对任何http请求都返回一段包含请求序号的html网页。