-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
54 lines (46 loc) · 1.18 KB
/
Copy pathserver.js
File metadata and controls
54 lines (46 loc) · 1.18 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
// [模块]
var http = require('http'),
url = require('url');
var respondIndexPage = require('./respondIndexPage').respondIndexPage,
respondResource = require('./respondResource').respondResource,
respondTag = require('./respondTag').respondTag;
// [变量]
var server;
// [流程]
server = http.createServer();
server.on('request', onRequest);
server.on('error', onError);
server.listen(80);
// [函数]
function onRequest(req, res) {
var reqUrl = url.parse(req.url, true),
pathname = reqUrl.pathname;
if ('/' === pathname) {
// 重定向到首页
redirectToIndex();
} else if ('/tag' === pathname) {
// 标记,用于实现自动刷新
respondTag(reqUrl, req, res);
} else if ('/index' === pathname) {
// 首页
respondIndexPage(reqUrl, req, res);
} else if (/^\/res\//.test(pathname)) {
// 返回资源文件
respondResource(reqUrl, req, res);
} else {
// 未找到
notFound();
}
function redirectToIndex() {
res.statusCode = 301;
res.setHeader('Location', '/index');
res.end();
}
function notFound() {
res.statusCode = 404;
res.end();
}
}
function onError(err) {
console.log(err.toString());
}