Node.Js创建Web服务器的教程
Node.js提供了http模块,http模块主要用于搭建 HTTP服务端和客户端,使用 HTTP 服务器或客户端功能必须调用http 模块,代码如下:
var http = require('http');
以下是演示一个最基本的 HTTP 服务器架构(使用8090端口),创建 server.js 文件,代码如下所示:
var http = require('http');
var fs = require('fs');
var url = require('url');
// 创建服务器
var server = http.createServer(function (request,response){
// 解析请求,获取文件名
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " received !");
//读取请求的文件内容
fs.readFile(pathname.slice(1),function (err,data){
if(err){
console.log(err);
// HTTP 状态码 404 Not Found
response.writeHead(404,{"Content-Type":"text/html"});
response.write("404 Not Found !");
}else{
// HTTP 状态码 200 OK
response.writeHead(200,{"Content-Type":"text/html"});
// 响应文件内容
response.write(data.toString());
}
// 发送响应数据
response.end();
});
}).listen(8090,'127.0.0.1',function (){
var host = server.address().address; // 获取本机地址
var port = server.address().port; // 获取监听端口
console.log("Server is running at http://%s:%s",host,port);
});
接下来我们在该目录下创建一个 index.html 文件,代码如下:
<html>
<head>
<title>Sample Page</title>
</head>
<body>
Hello World!
</body>
</html>
执行 server.js 文件:
node zfs$ node server.js
Server is running at http://127.0.0.1:8090
接着我们在浏览器中打开地址:http://127.0.0.1:8090/index.html,显示如下图所示:
执行 server.js 后的控制台输出信息如下:
node zfs$ node server.js
Server is running at http://127.0.0.1:8090
Request for /index.html received !