使用原生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

经验分享 程序员 微信小程序 职场和发展