你的位置:首页 > Java教程

[Java教程]nodejs创建web服务器hello world程序


Node.js 最主要的应用是服务器序。

设计Node.js 的一个主要目的是提供高度可扩展的服务器环境。这是我们在
本章开篇介绍过的Node 和V8 引擎有所区别的地方。Node 除了用V8 引擎来解析
JavaScript 外,还提供了高度优化的应用库,用来提高服务器效率。比如说,HTTP
模块是专为快速非阻塞式HTTP 服务器而用C 重新编写的。让我们看一下Node 采
用HTTP 服务器的“Hello World”经典例子

var http=require('http');//引入核心HTTP模块/*创建服务器*/var server=http.createServer(function(req,res){  res.writeHead(200,{"Content-type":'text/html'});  res.end('hello world');});/*监听IP以及端口*/server.listen(8124,'127.0.0.1',function(){  console.log('服务器创建成成功:127.0.0.1:8124');});

运行代码如下所示

ZXD@ZXD-PC /K/work/learn/nodejs/cvs01
$ node app
服务器创建成成功:127.0.0.1:8124

这个示例代码首先通过require 方法把HTTP 库包含到程序中来。有许多语言都有
包含其他库这一方法,Node 用的是CommonJS 模块风格。

当前需要了解的是,HTTP 库所具有的功能已经赋给了http 对象。
下一步,我们需要一个HTTP 服务器。PHP 等其他语言需要在类似Apache 这样的
服务器中运行,而Node 和它们不同,因为Node 本身就是Web 服务器。但这同样
意味着我们需要先创建该服务器。下一行代码调用HTTP 模块的一个工厂模式方法
(createServer)来创建新的HTTP 服务器。新创建的HTTP 服务器并没有赋值给
任何变量,它只会成为存活在全局范围内的匿名对象。我们可以通过链式调用来初
始化服务器,并告诉它监听在8124 端口。
当调用createServer 的时候,我们传了一个匿名函数作为参数。此函数绑定在
新创建服务器的事件监听器上进行request 事件处理。消息事件是JavaScript 和
Node 的核心。在这个例子中,每当一个新的访问请求到达Web 服务器,它都将调
用我们指定的函数方法来处理。我们称这类方法为回调(callback)。因为每当一个
事件发生时,我们将回调监听此事件的所有函数。