Node.JS 2.Hello World

2.Hello World

2011年9月12日

16:15

老生常谈,接下来的第一个示例也是 "Hello World"

下面是一个 Node.JS Http 服务端,服务端在收到请求的2秒后会返回 "Hello World"


 

var sys = require('sys'),

http 
= require('http');

http.createServer(
function(req, res) {
    setTimeout(
function() {
        res.writeHead(
200, {'Content-Type''text/plain'});
        res.write(
'Hello World');
        res.end();
//截至最新版 res.close(); 以替换为 res.end();
    }, 
2000);

}).listen(
8000);

 

http://127.0.0.1:8000");

执行代码:

node hello_world.js

 

现在可以打开浏览器来访问 http://127.0.0.1:8000了。你也可以用 IP/URL 在远程的机器来访问这个服务。

 

接下来是代码的解释。

前两行是导入

Node.JS 的内置 modules "sys" "http"。即:

var some_var = require('build-in_module_name');

 

上面我们是导入了:

var sys = require('sys'),

http = request('http');

 

在上面,'sys' module 提供了输出数据到命令行。而 http module 这提供了一个 Http 的服务端,同样你以后也可以导入自己的 modules

更多的将会在后面的文章中介绍。

然后我们建立了一个 HTTP Server 并且对 8000 端口进行了监听。

http.createServer(function(request, response) {

}).listen(8000);

 

request 对象中包含了这次请求的信息,如请求的方法: GET, POST, DELETE...,以及其他的信息,如请求的 URLHeaders等等。

response 则提供了对请求进行响应的功能,如在示例中返回了 "Hello World"

当有请求进来的时候,服务端在返回任何响应前会先等待两秒-- 通过 setTimeout() 这个函数。

像这样: setTimeout(function() { … }, 2000);

在两秒后他会执行匿名的回调函数,函数体则如我们上面写的:

response.writeHead(200, {'Content-Type': 'text/plain'});

response.write('Hello World');

response.close();

 

首先我们设置了返回的头信息,也就是请求的状态码

200(亦即是请求成功)和返回的类型 Content-Type Text/Plain

在返回了头信息后就可以使用 response.write() 函数来返回相应的数据到客户端了。

最后必须关闭 response 以告诉服务器所有的相应信息已经发送了,close 方法必须在每个 response 的最后调用。

Ps: 截至最新版 close 已替换为 end

最后一行则是在命令行中输出了提示信息,表示服务端已经在 8000 端口进行监听了。

sys.puts('Server running at http://127.0.0.1:8000');

就是这样,寥寥数行代码你就可以建立并运行一个 "Hello World" 服务端来相应所有的请求。

posted on 2011-09-13 01:05  兴说:  阅读(971)  评论(0编辑  收藏  举报