路由的概念
广义上来说,路由就是映射关系
在Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系
Express中的路由分3部分组成,分别是请求的类型,请求的URL地址、处理函数,格式如下:
1
| app.method(path,handler)
|
在Express中使用路由最简单的方式,就是把路由挂载到app上,示例如下:
1 2 3 4 5 6 7 8 9 10 11
| const express = require('express'); const app = express(); app.listen(80,() => { console.log('express server running at 127.0.0.1'); }); app.get('/',(req,res) => { res.send('Hello world'); }); app.post('/',(req,res) => { res.send('post request'); });
|
路由的模块化
为了方便对路由进行模块化的管理,Express不建议将路由直接挂载到app上,而是推荐将路由抽离为单独的模块
将路由抽离为单独模块的步骤如下:
1.创建路由模块对应的 .js 文件
2.调用 express.Router() 函数创建路由对象
3.向路由对象上挂载具体的路由
4.使用 module.exports 向外共享路由对象
5.使用 app.use() 函数注册路由模块
创建路由模块
1 2 3 4 5 6 7 8 9 10 11 12 13
| const express = require('express');
const router = express.Router();
router.get('/user/list',(req,res) => { res.send('Get user list') }); router.post('/user/add',(req,res) => { res.send('Add new user') });
module.exports = router
|
注册路由模块和为路由模块添加前缀
1 2 3 4 5 6 7 8 9 10 11
| const express = require('express'); const app = express(); app.listen(80,() => { console.log('http://127.0.0.1'); })
const userRouter = require('../router/user.js');
app.use(userRouter);
|