使用原生nodejs搭建简单静态Web服务器
web.js
//搭建一个简单的静态Web服务器
const http = require(http)
const url = require(url)
const fs = require(fs)
const path = require(path)
var extname = require(./Module/tool)
//基本思路
//获取请求的地址
//根据地址读取相应的文件内容
http.createServer((req,res) => {
//通过url解析地址获取请求的地址
let pathname = url.parse(req.url).pathname
//默认打开主页index.html
pathname = pathname == /?/index.html:pathname
//获取地址的后缀,用于区分文件类型
let ext = path.extname(pathname)
//开始读取文件
fs.readFile(./static+pathname,async (err,data) => {
if(err){
//没有相应文件提示
res.writeHead(200,{
"Content-Type":"text/html;charset=utf-8"})
res.write(这个页面不存在)
}
//根据地址后缀确定文件类型,再根据文件类型设置响应头部
res.writeHead(200,{
"Content-Type":`${
await extname.getFileMime(ext)};charset=utf-8`})
res.write(data)
})
}).listen(8081)
console.log(Your Server is running at http://127.0.0.1:8081/)
tool.js
const fs = require(fs)
exports.getFileMime = function(extname) {
return new Promise((resolve,reject) => {
fs.readFile(./data/mime.json,(err,data) => {
if(err){
reject(err)
return
}
let temp = JSON.parse(data.toString())
resolve(temp[extname])
})
})
}
./data/mime.json ./static
