重写express

2020-08-12  本文已影响0人  youareyou
module.exports=function () {
  return app;
};
var md=[];
var routers={};
function app(req,res) {
  var i=0;
  function next() {
    if(i==md.length) {
      router(req,res);
      return;
    }
      md[i++](req,res,next);
  }
    next();
}
  function router(req,res) {
    var u=req.url.toLowerCase();
    var m=req.method.toLowerCase();
    if(!routers[m]){res.end('method is wrong!');return;}
    if(!routers[m][u]){res.end('url is wrong!'); return;}
    routers[m][u](req,res);
  }
// routers={'get':{url1:fn1,url2:fn2},'post':{url4:fn4,url5:fn5}};
app.use=function (fn) {
  md.splice((md.length-1),0,fn);
};
app.get=function (url,fn) {
  url=url.toLowerCase();
  routers['get'] ||routers['get']={};
  routers['get'][url]=fn;
};
app.post=function (url,fn) {
  url=url.toLowerCase();
  routers['post'] || routers['post']={};
  routers['post'][url]=fn;
};
上一篇 下一篇

猜你喜欢

热点阅读