-
Notifications
You must be signed in to change notification settings - Fork 2
/
app_server.js
77 lines (72 loc) · 2.07 KB
/
app_server.js
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
/*
静态资源服务器:
负责处理 .html .css image 等请求
*/
var http = require('http');
var url = require('url');
var fs = require('fs');
var routes = require('./src/route/route');
var server = http.createServer( (request, response) => {
response.setHeader("Access-Control-Allow-Origin", "*");
var urlObj = url.parse(request.url);
var route = urlObj.pathname.slice(1);
if(route === 'api'){
var post = '';
request.on('data', (chunk) => {
post += chunk;
})
request.on('end', () => {
post = JSON.parse(post)
routes(post, response);
return ;
});
return ;
}
var extName = getExtendName(urlObj.pathname);
var contentType = 'text/html;charset=UTF-8';
switch (extName){
case 'jpg':
contentType = 'image/jpeg';
break;
case 'png':
contentType = 'image/png';
break;
case 'gif':
contentType = 'image/gif';
break;
case 'ico':
contentType = 'image/x-icon';
break;
case 'css':
contentType = 'text/css; charset=utf-8';
break;
case 'js':
contentType = 'application/javascript';
break;
case 'html':
break;
default:
response.writeHead(200, {
'Content-Type': contentType,
'Cache-Control': 'no-cache'
});
response.end(`本网站不支持${extName}格式的文件!`);
return ;
}
var buffer = fs.readFileSync(`${__dirname}${urlObj.pathname}`);
response.writeHead(200, {
'Content-Type': contentType,
'Cache-Control': 'no-cache',
'Server': 'Tianzun'
});
response.end(buffer);
});
function getExtendName(str) {
var index = str.indexOf('.');
var flag = typeof str === 'string' && index !== -1;
if(!str || !flag){
return '';
}
return str.slice(index+1);
}
server.listen(9999, '0.0.0.0', () => console.log('start'));