Nodejs基础之express router对象

router

  • 导入父级参数到子级配置
let router = express.Router({
    mergeParams: true
})
  • 区分大小写配置
let router = express.Router({
    caseSensitive: true
})
  • 路径严格模式配置
let router = express.Router({
    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('/uer', function(req, res, next) {
    ...
})
module.exports = router // 导出路由
  • 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.param:单独监听参数,然后处理

    router.param('id', function(req,res,next,value){
    ... //id就是value
    })
    等同于 下面的param的 id
    router.get('.user/:id', function(req,res){
    ...
    })
  • 路径的正则匹配
// ? 有或没有
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){
    ...
})

你可能感兴趣的:(nodejs)