zhangzhengyang
 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

 

分类:

技术点:

相关文章:

  • 2021-07-01
  • 2021-11-17
  • 2022-12-23
  • 2021-12-31
  • 2021-12-10
  • 2021-11-24
  • 2021-08-03
猜你喜欢
  • 2022-01-28
  • 2022-01-21
  • 2021-04-05
  • 2021-10-01
  • 2021-11-30
  • 2022-01-12
相关资源
相似解决方案