const http = require('http');
const fs = require('fs');
const path = require('path');
const mime = require('./mime.json')
http.createServer((req,res)=>{
fs.readFile(path.join(__dirname,'view',req.url),(err,data)=>{
if(err){
res.writeHead(404,{
'Content-Type':'text/plain; charset=utf8'
});
res.end('404....')
} else {
let dtype = 'text/html';
// 获取请求文件的路径
let ext = path.extname(req.url);
// 如果请求的文件后缀合理,就获取到对应的响应格式
if(mime[ext]){
dtype = mime[ext];
}
// 如果响应的内容是文本,就设置成utf8编码
if(dtype.startsWith('text')){
dtype += '; charset=utf8';
}
// 设置响应头信息
res.writeHead(200,{
'Content-Type':dtype
})
res.end(data);
}
})
}).listen(3000,()=>{
console.log('server online');
})
附录MIME json格式对照表
{
".3gp": "video/3gpp" ,
".apk": "application/vnd.android.package-archive",
".asf": "video/x-ms-asf",
".avi": "video/x-msvideo",
".bin": "application/octet-stream",
".bmp": "image/bmp",
".c": "text/plain",
".class": "application/octet-stream",
".conf": "text/plain",
".cpp": "text/plain",
".doc": "application/msword",
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
".xls": "application/vnd.ms-excel",
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
".exe": "application/octet-stream",
".gif": "image/gif",
".gtar": "application/x-gtar",
".gz": "application/x-gzip",
".h": "text/plain",
".htm": "text/html",
".html": "text/html",
".jar": "application/java-archive",
".java": "text/plain",
".jpeg": "image/jpeg",
".jpg": "image/jpeg",
".js": "application/x-javascript",
".log": "text/plain",
".m3u": "audio/x-mpegurl",
".m4a": "audio/mp4a-latm",
".m4b": "audio/mp4a-latm",
".m4p": "audio/mp4a-latm",
".m4u": "video/vnd.mpegurl",
".m4v": "video/x-m4v",
".mov": "video/quicktime",
".mp2": "audio/x-mpeg",
".mp3": "audio/x-mpeg",
".mp4": "video/mp4",
".mpc": "application/vnd.mpohun.certificate",
".mpe": "video/mpeg",
".mpeg": "video/mpeg",
".mpg": "video/mpeg",
".mpg4": "video/mp4",
".mpga": "audio/mpeg",
".msg": "application/vnd.ms-outlook",
".ogg": "audio/ogg",
".pdf": "application/pdf",
".png": "image/png",
".pps": "application/vnd.ms-powerpoint",
".ppt": "application/vnd.ms-powerpoint",
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
".prop": "text/plain",
".rc": "text/plain",
".rmvb": "audio/x-pn-realaudio",
".rtf": "application/rtf",
".sh": "text/plain",
".tar": "application/x-tar",
".tgz": "application/x-compressed",
".txt": "text/plain",
".wav": "audio/x-wav",
".wma": "audio/x-ms-wma",
".wmv": "audio/x-ms-wmv",
".wps": "application/vnd.ms-works",
".xml": "text/plain",
".z": "application/x-compress",
".zip": "application/x-zip-compressed",
"": "*/*"
}