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"
}
}
网友评论