-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path03http.js
More file actions
129 lines (122 loc) · 3.16 KB
/
03http.js
File metadata and controls
129 lines (122 loc) · 3.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
var http = require("http");
var fs = require("fs")
//1,通过http.createServer()创建一个服务,得到一个server实例对象
// 对于服务端三件事
// 1,接受请求
// 2,处理请求
// 3,发送响应
var server = http.createServer()
//设置请求处理函数
//请求处理函数需要接受两个参数
// Request是一个请求对象,可以拿到当前请求的一些信息,例如请求路径,请求方法,请求报文等
// Response是一个响应对象,可以用来给请求发送响应
var handleRequest = function(request,response ){
// console.log("收到请求了");
// console.log("当前请求的请求路径是:"+request.url)
// response.write("hello");
// response.write(" world");
//在发送数据完毕后要主动结束响应
//response.end("hello world!")
//1,通过request拿到路径
var url=request.url;
//2,通过不同的请求路径,处理不同的响应
if(url=="/"){
//response.writeHead(响应状态码,响应对象)
response.writeHead(200,{
'Content-Type':'text/html'
})
fs.readFile('./http/index.html',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
//response.end("<strong>index page</strong>")
}else if (url=="/login"){
response.writeHead(200,{
'Content-Type':'text/html'
})
fs.readFile('./http/login.html',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
//response.end("<h1>login page</h1>")
}else if( url=="/register"){
response.writeHead(200,{
'Content-Type':'text/html'
})
fs.readFile('./http/register.html',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
//response.end("<b>register page</b>")
}else if(url=="/css/index.css"){
response.writeHead(200,{
'Content-Type':'text/css'
})
fs.readFile('./http/css/index.css',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
}else if(url=="/img/zhao.jpg"){
response.writeHead(200,{
'Content-Type':'image/jpeg'
})
fs.readFile('./http/img/zhao.jpg',function(err,date){
if(err){
throw err;
}
response.end(date)
})
}else if(url=="/css/login.css"){
response.writeHead(200,{
'Content-Type':'text/css'
})
fs.readFile('./http/css/login.css',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
}else if(url=="/css/register.css"){
response.writeHead(200,{
'Content-Type':'text/css'
})
fs.readFile('./http/css/register.css',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
}
else
{
response.writeHead(200,{
'Content-Type':'text/html'
})
fs.readFile('./http/404.html',"utf-8",function(err,date){
if(err){
throw err;
}
response.end(date)
})
//response.end("<i>404 page</i>")
}
}
//2,通过server实例对象添加request请求事件
// 这个事件是所有请求的入口
// 任何请求都会触发该事件对应的处理函数
server.on('request',handleRequest)
//3,绑定端口号,开启服务器
// 第一个参数是绑定的端口号
// 第二个参数是可选的
// 第三个参数是用来指定成功之后的回调函数
server.listen(8899,function(){
console.log("server is running at 8899")
})