Node.js-express路由
在Express 中,路由指的是客户端的请求与服务器处理函数之间的映射关系。
Express 中的路由分3部分组成
- 请求的类型 
- 请求的URL地址 
- 处理函数 - 1 
 2
 3
 4- app.METHODS(PATH,HANDLER) //METHODS 请求类型 PATH:请求的URL地址 HANDLER:处理函数 
 //例如:
 app.get('/',function(req,res){ res.send("Hello World!") })
路由的匹配过程:
每当一个请求到达服务器之后,需要先经过路由的匹配,只有匹配成功之后,才会调用对应的处理函数。
在匹配时,会按照路由的顺序进行匹配,如果请求类型和请求的URL同时匹配成功,则Express 会将这次请求,转交给对应的function函数进行处理。

最简单实例(将路由挂载到app身上):
| 1 | app.get('/',(req,res) => { res.send() }) | 
模块化路由
为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到app 上,而是推荐将路由抽离为单独的模块。
步骤:
- 创建路由模块对应的js文件 
- 调用express.Router()函数创建路由对象 
- 向路由对象上挂载具体的路由 
- 使用module.exports向外共享路由对象 
- 使用app.use()函数注册路由模块 - 1 
 2
 3
 4
 5
 6
 7
 8- var express = require('express'); //导入express 
 var router = express.Router(); // 创建路由对象
 router.get('/user/list',function(res,req){ res.send() }) //挂载获取用户列表的路由
 router.post( " /user/add", function (req,res){ res.send() }) //挂载添加用户的路由
 module.exports = router // 向外导出路由对象
注册路由模块
| 1 | //1.导入路由模块 | 
整体文件:
| 1 | const express = require("express") | 
为路由模块添加前缀
类似于托管静态资源时,为静态资源统一挂载访问前缀一样,路由模块添加前缀的方式也非常简单:
| 1 | //导入路由模块 |