类似express的路由封装方式
Posted zhcblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类似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);
以上是关于类似express的路由封装方式的主要内容,如果未能解决你的问题,请参考以下文章
Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段