zoukankan      html  css  js  c++  java
  • http搭建服务器

     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

  • 相关阅读:
    树的直径 学习笔记
    SDOJ 3742 黑白图
    【SDOJ 3741】 【poj2528】 Mayor's posters
    SDOJ 3740 Graph
    SDOJ 3696 Tree
    SDOJ 1195 Zhenhuan
    又一次受刺激后的发奋
    html_表单form中的input类型大集合
    js_表格的增删改
    JS_拖拽窗口的实现
  • 原文地址:https://www.cnblogs.com/zhangzhengyang/p/11111883.html
Copyright © 2011-2022 走看看