node处理响应头的方式

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",   
"":        "*/*"    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值