Skip to content

路由定义


路由的配置文件统一写在 route 目录下,统一导出一个函数,路由配置写在这个函数内

import { RouteType } from 'think-ts-lib'

export default (routes: RouteType) => {

    // 分组路由且挂载了路由中间件
    routes.group('/api/v1', (route: RouteType) => {
        route.get('/hello', 'hello/sayHello')
        route.post('/world', 'hello/sayWorld')
    })

    // 视图演示
    routes.get('/', 'hello/showIndex')

}
import { RouteType } from 'think-ts-lib'

export default (routes: RouteType) => {

    // 分组路由且挂载了路由中间件
    routes.group('/api/v1', (route: RouteType) => {
        route.get('/hello', 'hello/sayHello')
        route.post('/world', 'hello/sayWorld')
    })

    // 视图演示
    routes.get('/', 'hello/showIndex')

}

GET 路由

route.get('<路由地址>','<控制器文件名称>/<控制器方法名称>')
route.get('<路由地址>','<控制器文件名称>/<控制器方法名称>')

如果使用 View() 去渲染视图,那么请采用GET路由

POST 路由

route.post('<路由地址>','<控制器文件名称>/<控制器方法名称>')
route.post('<路由地址>','<控制器文件名称>/<控制器方法名称>')

PUT 路由

route.put('<路由地址>','<控制器文件名称>/<控制器方法名称>')
route.put('<路由地址>','<控制器文件名称>/<控制器方法名称>')

DELETE 路由

route.delete('<路由地址>','<控制器文件名称>/<控制器方法名称>')
route.delete('<路由地址>','<控制器文件名称>/<控制器方法名称>')

控制器分级写法

route.post('<路由地址>','<文件夹名称/控制器文件名称>/<控制器方法名称>')
route.post('<路由地址>','<文件夹名称/控制器文件名称>/<控制器方法名称>')

分组路由

route.group('<分组前缀名>',(router) => {
    router.get('<路由地址>','<控制器文件名称>/<控制器方法名称>')
    router.post('<路由地址>','<控制器文件名称>/<控制器方法名称>')
})
route.group('<分组前缀名>',(router) => {
    router.get('<路由地址>','<控制器文件名称>/<控制器方法名称>')
    router.post('<路由地址>','<控制器文件名称>/<控制器方法名称>')
})

使用路由中间件

import { RouteType } from 'think-ts-lib'
import checkLogin from '../app/middleware/checkLogin'

export default (routes: RouteType) => {

    // 在分组路由上挂载路由中间件,整个分组内的路由都会先通过这个中间件
    routes.group('/api/v1', (route: RouteType) => {
        route.get('/hello', 'hello/sayHello')
        route.post('/world', 'hello/sayWorld')
    }, checkLogin)

    // 在普通路由上挂载路由中间件
    routes.post('<路由地址>','<控制器文件名称>/<控制器方法名称>', checkLogin)

}
import { RouteType } from 'think-ts-lib'
import checkLogin from '../app/middleware/checkLogin'

export default (routes: RouteType) => {

    // 在分组路由上挂载路由中间件,整个分组内的路由都会先通过这个中间件
    routes.group('/api/v1', (route: RouteType) => {
        route.get('/hello', 'hello/sayHello')
        route.post('/world', 'hello/sayWorld')
    }, checkLogin)

    // 在普通路由上挂载路由中间件
    routes.post('<路由地址>','<控制器文件名称>/<控制器方法名称>', checkLogin)

}

多种形式互相搭配可以有不一样的写法

注意事项

  • 分组内部不支持嵌套分组
  • 分组内部的路由不支持写中间件
import { RouteType } from 'think-ts-lib'
import checkLogin from '../app/middleware/checkLogin'

export default (routes: RouteType) => {

    routes.group('/api/v1', (route: RouteType) => {
        route.group('/world', 'hello/sayWorld') // 错误写法 
        route.get('/hello', 'hello/sayHello', checkLogin) // 错误写法 
    })

}
import { RouteType } from 'think-ts-lib'
import checkLogin from '../app/middleware/checkLogin'

export default (routes: RouteType) => {

    routes.group('/api/v1', (route: RouteType) => {
        route.group('/world', 'hello/sayWorld') // 错误写法 
        route.get('/hello', 'hello/sayHello', checkLogin) // 错误写法 
    })

}

备案号:冀ICP备20015584号-2