1. 程式人生 > >類似express的路由封裝方式

類似express的路由封裝方式

1.原理

主要過程涉及三個元素的定義,如下:

//用於承載一系列方法的物件
var funObj = {};
//用於根據條件執行funObj中的方法
var app = function(){};
//用於向funObj新增方法
app.get = function(){};

2.具體實現

a. 路由框架的封裝(route.js)

//==========================
//  類似express的路由框架
//==========================
var url = require('url');
//用於承載一系列方法的物件
var funObj = {};
//用於根據條件執行funObj中的方法 var app = function(req,res){ var pathName = url.parse(req.url).pathname; if(funObj[pathName]){ funObj[pathName](req,res); }else{ res.writeHead(200,{'content-type':'text/html;charset=utf-8'}); res.end('無有效路由'); } }; //用於向funObj新增方法 app.get = function
(string, callback){ funObj[string] = callback; }; module.exports = app;

b. 框架的呼叫和執行(index.js)

var http = require('http');
var app = require('./route');

app.get('/login',function(req,res){
    res.end('login');
})
app.get('/home',function(req,res){
    res.end('home');
})
http.createServer(app).listen(
8090);