類似express的路由封裝方式
阿新 • • 發佈:2019-01-11
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);