美文网首页
Node.js 开发一个简单的http服务器

Node.js 开发一个简单的http服务器

作者: 往后余生9375 | 来源:发表于2020-11-20 14:08 被阅读0次

http服务器

main.js

const http = require("http");
const url = require("url");
var fs = require('fs');

//读取配置文件,变量config的类型是Object类型
let config = require('./config');

const  server = http.createServer(function (req,res){

    console.log("请求的URL是:",req.url);
    var urlObj = url.parse(req.url,true);
    console.log("请求参数是:",JSON.stringify(urlObj.query));

    let filePath = config.server.webPath + req.url;

    if(req.url === "/"){
        filePath+= config.server.homePage;
    }

    if(fs.existsSync(filePath)){
        // 判断文件类型
        let urlArray = req.url.split(".");
        let suffix = urlArray[urlArray.length - 1].toLowerCase();
        switch (suffix){
            case "css":
                res.setHeader("Content-Type","text/css");
                break;

            case "js":
                res.setHeader("Content-Type","application/x-javascript");
                break;

            default:
                res.setHeader("Content-Type","text/html;charset=utf-8");
                break;

        }
        res.write(readFile(filePath));
    }else{
        console.log(filePath+"文件不存在");
        res.statusCode = 404;
        res.write("<html>404,文件没找到!</html>");
    }
    res.end();

});

server.listen(config.server.port);
console.info("http服务已在8822启动!")

/**
 * 读取文件
 * @param filePath
 * @returns {string}
 */
function readFile(filePath){
    let data = fs.readFileSync(filePath, 'utf-8');
    return data;
}

配置文件

config.json

{
  "server":{
    "port": 8822,
    "webPath": "D:/hbuilder-workspace/node-http-server/www",
    "homePage": "index.html"
  }
}

相关文章

网友评论

      本文标题:Node.js 开发一个简单的http服务器

      本文链接:https://www.haomeiwen.com/subject/wjmdiktx.html