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;
};
- use()添加到 md 的中间件函数。
- 把路由部分routers,在函数router 内比对后调相对应的函数执行。
网友评论