Nodejs教程27:Node.js项目之二:实现路由
chencl1986 opened this issue · 0 comments
chencl1986 commented
阅读更多系列文章请访问我的GitHub博客,示例代码请访问这里。
创建路由
在之前的例子中,我们总是要通过if else语句来判断请求的接口路径,并进行相应操作。
这样会极大地降低开发效率,也不利于后期代码维护。
因此,通常的开发中,都会使用路由对不同的接口进行操作。
现在我们就来自己实现一个简单的路由:
代码示例:/lesson27/lib/router.js
1. 先创建一个router对象,用于存储路由表。其中有2个属性,分别为get、post,分别用于存储相应get、post请求地址的回调方法。
// 创建路由表
let router = {
// 存储get请求的路由
get: {
},
// 存储post请求的路由
post: {
}
}
2. 创建一个addRouter方法,用于添加路由配置,参数method为请求方法,url为请求地址,callback为处理该请求的回调函数。
// 添加路由的方法,method为请求方法,url为请求地址,callback为处理该请求的回调函数
function addRouter(method, url, callback) {
// 为便于处理,将method和url统一转换成小写
method = method.toLowerCase()
url = url.toLowerCase()
// 将处理请求的回调函数,按方法名和地址储存到路由表中
router[method][url] = callback
}
3. 创建一个findRouter方法,用于查找相应路由的回调函数。参数method为请求方法,url为请求地址,返回处理路由的回调函数。
// 查找处理请求的回调函数的方法,method为请求方法,url为请求地址,返回处理路由的回调函数
function findRouter(method, url) {
// 为便于处理,将method和url统一转换成小写
method = method.toLowerCase()
url = url.toLowerCase()
// 找到路由对应的回调函数,不存在则默认返回null
const callback = router[method][url] || null
// 将回调函数返回
return callback
}
4. 将路由配置作为模块导出
// 将添加路由和查找路由方法导出
module.exports = {
addRouter,
findRouter
}