Node.js权威指南
上QQ阅读APP看书,第一时间看更新

1.4 一个简单的示例应用程序

接下来,让我们来看一个最简单的Node.js示例应用程序,其代码如代码清单1-1所示。

代码清单1-1 一个最简单的Node.js示例应用程序

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write('<head><meta charset="utf-8"/></head>');
res.end('你好\n');
}).listen(1337, "127.0.0.1");
console.log('Server running at http:// 127.0.0.1:1337/');

在这段代码中,我们首先使用http对象来引用http模块。代码如下所示:

var http = require('http');

接下来,我们使用http模块的createServer方法来创建用于接收HTTP客户端请求并返回响应的HTTP服务器应用程序。在createServer方法中,定义了当服务器接收到客户端请求时所执行的回调函数,在该回调函数中指定当服务器接收到客户端请求时所要执行的处理,代码如下所示:

http.createServer(function (req, res) {
// 回调函数中的代码略
})

在回调函数中,使用两个参数,其中第一个参数代表客户端请求对象,第二个参数代表服务器端所做出的响应对象。

在我们的示例函数中,首先通过响应对象的writeHead方法书写响应头,同时将响应头中的状态码定义为200,将内容类型定义为text/html,表示返回一段HTML代码,代码如下所示:

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

然后通过响应对象的write方法书写一行HTML代码,在本例中书写一个<head>标签,并且在<head>标签中通过使用meta属性将HTML网页所使用的字符集定义为UTF-8字符集,目的是为了能够在浏览器中显示中文,代码如下所示:

res.write('<head><meta charset="utf-8"/></head>');

最后,通过响应对象的end方法输出一行HTML代码并结束响应流,代码如下所示:

res.end('你好\n');;

http模块的createServer方法将返回被创建的HTTP服务器对象,我们使用该对象的listen方法指定该服务器使用端口及服务器绑定地址,并对该端口进行监听,代码如下所示:

http.createServer(function (req, res) {
// 回调函数中的代码略
}).listen(1337, "127.0.0.1");

示例代码中的最后一行代表向控制器窗口输出“Server running at http://127.0.0.1:1337/”字符串,代码如下所示:

console.log('Server running at http:// 127.0.0.1:1337/');

将该示例代码保存在app.js文件(文件名可任意定义)中,然后在操作系统的命令行窗口中输入以下命令。(为了方便更多读者的阅读,本书中使用Windows操作系统中的命令行窗口进行展示。)

node app.js

命令行窗口中将显示“Server running at http://127.0.0.1:1337/”文字,如图1-1所示。

图1-1 运行app.js文件

在任何浏览器地址栏中输入“http://localhost:1337/”地址,浏览器窗口中显示“你好”文字,如图1-2所示。

图1-2 第一个示例程序的运行结果