[关闭]
@Wangww0925 2019-08-07T08:02:35.000000Z 字数 1188 阅读 209

NodeJs 原生 封装路由处理模块

NodeJs


demo下载 77.5kB

封装 http创建服务 模块:module/http.js

  1. var http = require("http");
  2. var url = require("url");
  3. var router = require("./routers")
  4. function server(){
  5. http.createServer((req,res)=>{
  6. var pathname = url.parse(req.url).pathname;
  7. router.show(req,res,pathname)
  8. }).listen(8081);
  9. }
  10. exports.user = server

封装 路由处理 模块:module/routers.js

注意__dirname指定的绝对路径

  1. var fs = require("fs");
  2. var path = require("path");
  3. console.log(__dirname)
  4. function routers(req,res, pathname){
  5. if(pathname == "/favicon.ico"){
  6. return;
  7. }
  8. if(pathname == "/"){
  9. fs.readFile(path.join(__dirname,"../app/index.html"),(err,data)=>{
  10. res.writeHead(200,{'Content-Type':"text/html;charset=utf-8"});
  11. res.end(data);
  12. })
  13. return;
  14. }
  15. var extname = path.extname(pathname);
  16. fs.readFile(path.join(__dirname,"../app/",pathname),(err,data)=>{
  17. getMime(extname,function(mime){
  18. res.writeHead(200,{'Content-Type': mime + ";charset=utf-8"});
  19. res.end(data);
  20. })
  21. })
  22. }
  23. function getMime(extname,callback){
  24. fs.readFile(path.join(__dirname,"../mime.json"),(err,data)=>{
  25. var obj = JSON.parse(data);
  26. callback(obj[extname])
  27. })
  28. }
  29. exports.show = routers

node执行 index.js

  1. var server = require("./module/http")
  2. server.user()

效果

image_1d2955iaqp2910qj10df1dqi16qmc.png-819kB


作者 wendy
2019 年 1月 21日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注