Express知识点摘抄

Express Router 对象

let router = express.Router({
  mergeParams: true, //导入父级参数到子级配置
  caseSensitive: true, //区分大小写配置
  strict: true, //路径严格模式配置 启动严格模式后 /test 和 /test/ 是不同路径
})

基本用法

index.js

app.user('/admin', require('./routers/admin')) // 引入路由文件

admin.js

const express = reqire('express');
const router = express.Router(); // 引入router

router.get('/user', function(req, res, next) {
  //...
})
module.exports = router // 导出路由

router.param

单独监听参数,然后处理

router.param('id', function(req, res, next, value){
  //... // id就是value
})

等同于下面的param的id

router.get('.user/:id', function(req, res){
  //...
})

router连用

const express = reqire('express');
const router = express.Router(); // 引入router

router.router('/test')
    .get(function(req, res, next) {
      //...
    })
    .get(function(req, res, next) {
      //...
    })
    .post(function(req, res, next) {
      //...
    })

路由的正则匹配

// ? 有或没有
router.get('.user/abc?d', function(req, res){
  //...
})
// + 一或多次
router.get('.user/abc+d', function(req, res){
  //...
})
// * 无或任意字符
router.get('.user/ab\*d', function(req, res){
  //...
})
// (bc) 优先级运算符
router.get('.user/a(bc)?d', function(req, res){
  //...
})
// 完全用正则
router.get(/\/user[1,2]\/abcd/, function(req, res){
  //...
})