博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node.js系列(实例):原生node.js实现静态资源管理
阅读量:5245 次
发布时间:2019-06-14

本文共 2052 字,大约阅读时间需要 6 分钟。

1 /** 2  * node入门之综合案例(一):简易路由 3  * @Author : by Ghost 4  * @Date : 2016/07/11 5  * @Description : 6  * 1、引入以下模块 7  * http模块:创建服务器,处理请求和相应 8  * URL模块:解析url请求地址 9  * fs模块:读取文件10  * path模块:处理文件路径,获取文件后缀名,路径优化11  *12  * 2、使用http.createServer()方法创建服务器13  * 3、使用url.parse()方法解析浏览器请求路径14  * 4、使用fs.readFile()方法读取对应的静态文件15  * 5、使用path.extname()方法获取文件后缀名16  * 6、设置MIME类型,实现文件兼容17  * */18 19 //引入模块20 var http = require('http');21 var url = require('url');22 var fs = require('fs');23 var path = require('path');24 25 //创建服务器,监听3000端口26 var server = http.createServer(function (req, res) {27     //屏蔽/favicon.ico的请求28     if(req.url === '/favicon.ico')29     {30         return ;31     };32 33     //解析请求路径34     var pathname = url.parse(req.url).pathname;35 36     //默认首页37     if(pathname.indexOf('.') === -1)38     {39         pathname = "/index.html"40     };41 42     //获取文件后缀名43     var extname = path.extname(pathname);44 45     //读取文件46     fs.readFile('./static/' + pathname, function (err,data) {47         //如果出错则表示请求路径不正确,显示40448         if(err){49             fs.readFile("./static/404.html",function(err,data){50                 res.writeHead(404,{"Content-Type":"text/html;charset=UTF-8"});51                 res.end(data);52             });53             return;54         };55 56         //读取数据57         //结束响应58         getMime(extname,function(mime){59             res.writeHead(200,{"Content-Type": mime});60             res.end(data);61         });62     });63 });64 65 //设置监听端口66 server.listen(3000,'127.0.0.1', function () {67     console.log("server is started listen port 3000");68 });69 70 //getMIME()71 function getMime(extname,callback)72 {73     fs.readFile('./static/mime.json', function (err,data) {74         if(err)75         {76             throw Error("找不到mime.json文件");77             return;78         };79         var mimeJson = JSON.parse(data);80         var mime = mimeJson[extname] || "text/plain";81         //执行回调函数,结束异步问题82         callback(mime);83     });84 }

 

转载于:https://www.cnblogs.com/humaotegong/p/5661894.html

你可能感兴趣的文章
【洛谷P1816 忠诚】线段树
查看>>
电子眼抓拍大解密
查看>>
poj 1331 Multiply
查看>>
tomcat7的数据库连接池tomcatjdbc的25个优势
查看>>
Html 小插件5 百度搜索代码2
查看>>
P1107 最大整数
查看>>
多进程与多线程的区别
查看>>
Ubuntu(虚拟机)下安装Qt5.5.1
查看>>
java.io.IOException: read failed, socket might closed or timeout, read ret: -1
查看>>
java 常用命令
查看>>
CodeForces Round #545 Div.2
查看>>
卷积中的参数
查看>>
51nod1076 (边双连通)
查看>>
Item 9: Avoid Conversion Operators in Your APIs(Effective C#)
查看>>
学习Spring Boot:(二十八)Spring Security 权限认证
查看>>
深入浅出JavaScript(2)—ECMAScript
查看>>
STEP2——《数据分析:企业的贤内助》重点摘要笔记(六)——数据描述
查看>>
ViewPager的onPageChangeListener里面的一些方法参数:
查看>>
Jenkins关闭、重启,Jenkins服务的启动、停止方法。
查看>>
CF E2 - Array and Segments (Hard version) (线段树)
查看>>