安装路由
npm i @koa/router
注
koa-router 兼容 koa1 和 koa2 的历史版本
@koa/router 专为 koa2 设计的新版本
新项目中,建议使用 @koa/router
import Koa from 'koa'
import Router from '@koa/router'
const hostname = "127.0.0.1"
const port = 8008
const app = new Koa()
const router = new Router() //实例化一个 Router 对象
//------ get请求
//路由是根据客户端发送的请求(包括请求的路径、方法等)调用与之匹配的处理函数
//根路由 http://127.0.0.1:8008/
router.get('/', async ctx => { //get请求
ctx.body = "dengruicode.com"
})
//查询参数 http://127.0.0.1:8008/test?id=001&web=dengruicode.com
router.get('/test', async ctx => { //get请求
let id = ctx.query.id
let web = ctx.query.web
ctx.body = id + " : " + web
})
//路径参数 http://127.0.0.1:8008/test2/id/002/web/www.dengruicode.com
router.get('/test2/id/:id/web/:web', async ctx => {
let id = ctx.params.id
let web = ctx.params.web
ctx.body = id + " : " + web
})
//重定向路由 http://127.0.0.1:8008/test3
router.redirect('/test3', 'https://www.dengruicode.com')
app.use(router.routes()) //将定义在 router 对象中的路由规则添加到 app 实例中
//------ 路由分组
//http://127.0.0.1:8008/user/add
//http://127.0.0.1:8008/user/del
const userRouter = new Router({ prefix: '/user' })
userRouter.get('/add', async ctx => {
ctx.body = "添加用户"
})
userRouter.get('/del', async ctx => {
ctx.body = "删除用户"
})
app.use(userRouter.routes())
// 在所有路由之后添加404处理函数
app.use(async ctx => {
if (!ctx.body) { //若没有设置 ctx.body, 则说明没有到匹配任何路由
ctx.status = 404
ctx.body = '404 Not Found'
}
})
app.listen(port, hostname, () => {
console.log(`服务器已启动: http://${hostname}:${port}`)
})