创建web服务器:
server.js
var http = require('http');//引入http模块
var fs = require('fs');//引入fs模块
var url = require('url');//引入url模块
http.createServer(function(request,respond){//创建服务器
//解析请求,包括文件名
var pathname = url.parse(request.url).pathname;
//输出请求的文件名
console.log("Request for" + pathname +"received.");
//从文件系统中读取请求的文件内容
fs.readFile(pathname.substr(1),function(err,data){
if(err){
console.log(err);
//HTTP状态码:404:NOT FOUND
//Content Type:txt/html
respond.writeHead(404,{'Content-Type':'text/html'})
}else{
//HTTP状态码:200:OK
//Content Type:text/html
respond.writeHead(200,{'Content-Type':'text/html'})
//响应文件内容
respond.write(data.toString());
}
//发送响应数据
respond.end();
})
}).listen(8080);
//控制台会输出以下内容
console.log('Server running at http://127.0.0.1:8080/')
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>我的第一个标题</h1>
<p>我的第一个段落</p>
</body>
</html>
创建客户端:
var http = require('http');
// 用于请求的选项
var options = {
host: 'localhost',
port: '8080',
path: '/index.html'
};
// 处理响应的回调函数
var callback = function(response){
// 不断更新数据
var body = '';
response.on('data', function(data) {
body += data;
});
response.on('end', function() {
// 数据接收完成
console.log(body);
});
}
// 向服务端发送请求
var req = http.request(options, callback);
req.end();