Skip to content

Express.Router

创建一个新的 router 对象

Express
express.Router([options])

描述

创建一个新的 router 对象。

Express
const router = express.Router([options])

options参数指定路由

  • caseSensitive – 启用区分大小写。
  • mergeParams- 保留来自父路由的 req.params 值。如果父项和子项的参数名称冲突,则子项的值优先
  • strict– 启用严格路由。

模块化路由

为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app 上,而是推荐将路由抽离为单独的模块。

模块化路由步骤

① 创建路由模块对应的 .js 文件
② 调用 express.Router() 函数创建路由对象
③ 向路由对象上挂载具体的路由
④ 使用 module.exports 向外共享路由对象
⑤ 使用 app.use() 函数注册路由模块

在创建的模块路由文件index.js 里面写入代码:

Express
const express = require('express');   // 导入 express
const router = express.Router();      // 挂在路由对象

router.get('/user', (req, res) => {   // 挂载的路由 get
	console.log('get user')
});

router.post('/user', (req, res) => {  // 挂载的路由 post
	console.log('post user')
});

module.exports = router;  // 导出路由对象router

注册路由模块 并为路由模块添加前缀

Express
const Router = require('./routes/index');  
// 注册路由模块
app.use(Router);
// 给注册路由模块添加统一访问的路由前缀 /api
app.use('/api', Router);