router.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. var Router ={
  2. go:function(url,res,req){
  3. var URLParse = URL.parse(url,true);
  4. var URLArr = URLParse.pathname.split('/');
  5. var query = URLParse.query;
  6. //console.log(query);
  7. // console.log(URLArr[1]);
  8. if(CONFIG.HandlerRules[URLArr[1]]){
  9. return Router.getHandler(url,res,req);
  10. }else if(CONFIG.StaticRules[URLArr[1]]){
  11. //Router._error();
  12. //return;
  13. return STATIC.load(ROOTPATH+URLParse.pathname,query,res);
  14. }else{
  15. // Router._error('Router Go ERROR:'+url,res);
  16. // Logger.error(url+' request error!');
  17. JUMPER.go(url,URLArr[1],res);
  18. }
  19. },
  20. getHandler:function(url,res,req){
  21. var URLParse = URL.parse(HANDLERPATH+url,true);
  22. var URLArr = URLParse.pathname.split('/');
  23. //console.log(URLArr)
  24. if(URLArr[URLArr.length-1]=='') URLArr[URLArr.length-1]='index';
  25. var FileName = URLArr.join('/')+'.js';
  26. var mod,call='index';
  27. if(!FILE.existsSync(FileName)){
  28. call = URLArr.pop();
  29. FileName = URLArr.join('/')+'.js';
  30. }
  31. //console.log(FileName);
  32. // console.log(url);
  33. try{
  34. mod = require(FileName);
  35. mod[call](res,req,URLParse.query);
  36. }catch(err){
  37. Logger.error(url+' load error');
  38. Logger.out(err);
  39. res.writeHead(404, {'Content-Type': 'text/html'});
  40. res.end('404');
  41. }
  42. },
  43. _error:function(log,res,req){
  44. res.writeHead(404, {'Content-Type': 'text/html'});
  45. res.end();
  46. }
  47. }
  48. module.exports = Router;