1 const http = require(\'http\');
2 const fs = require(\'fs\');
3 const path = require(\'path\');
4 const url = require(\'url\');
5
6 // 1. 创建服务器
7 http.createServer((req, res) => {
8 // 1.1 获取url的路径
9 let pathUrl = url.parse(req.url);
10 let pathName = pathUrl.pathname;
11 // console.log(pathName);
12
13 // 1.2 提取后缀
14 if(pathName.lastIndexOf(\'.\') === -1){ // 没有
15 pathName += \'/index.html\';
16 }
17
18 // 1.3 处理有后缀
19 let fileUrl = path.join(__dirname, pathName);
20 // console.log(fileUrl);
21
22 // 取后缀
23 let extName = path.extname(fileUrl);
24
25 // 1.4 读取文件
26 fs.readFile(fileUrl, (err, data)=>{
27 if(err){ // 没有找到页面
28 res.writeHead(404, {\'content-type\': \'text/html;charset=utf-8\'});
29 res.end(\'<h1>404, 当前的页面不存在!</h1>\');
30 }else { // 找到资源
31 getContentType(extName, (contentType)=>{
32 // console.log(contentType);
33 res.writeHead(200, {\'content-type\': contentType});
34 res.end(data);
35 });
36 }
37 });
38 }).listen(3000);
39
40
41 let getContentType = (extName, callback)=>{
42 // 读取文件
43 fs.readFile(path.join(__dirname, \'mime.json\'), (err, data)=>{
44 if(err){
45 throw err;
46 }
47 let mineJson = JSON.parse(data);
48 let contentType = mineJson[extName] || \'text/plain\';
49 callback && callback(contentType);
50 })
51 };
http://localhost:3000/static/index.html
