这篇我们来使用一个koa-router, 控制一下路由

本篇的版本:注意版本哦

目录结构:

image.png

1.编辑index.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const Koa = require('koa')
const Router = require('koa-router')
const app = new Koa()


// 子路由1
const home = new Router()

home.get('/', async (ctx) => {
ctx.body = "home pages"
})


// 子路由2
const page = new Router()

page.get('/404', async (ctx) => {
ctx.body = '404 pages'
})


const login = new Router()

login.get('/', async (ctx) => {
ctx.body = 'login pages'
})

// 装载所有子路由
let router = new Router()
router.use('/', home.routes(), home.allowedMethods())
router.use('/page', page.routes(), page.allowedMethods())
router.use('/login', login.routes(), login.allowedMethods())

// 加载路由中间件
app.use(router.routes()).use(router.allowedMethods())



app.listen(3000, () => {
console.log('localhost:3000')
})

2.启动服务,打开浏览器

1
node index.js

访问:localhost:3000, localhost;3000/login , localhost:3000/page/404

都是可以看的到结果的

image.png

关于koa-router其他API

源码地址:https://github.com/alexmingoia/koa-router

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
router
.get('/', (ctx, next) => {
ctx.body = 'Hello World!';
})
.post('/users', (ctx, next) => {
// ...
})
.put('/users/:id', (ctx, next) => {
// ...
})
.del('/users/:id', (ctx, next) => {
// ...
})
.all('/users/:id', (ctx, next) => {
// ...
});

后记

关于koa相关的路由控制中间件有很多,就看自己的选择了

这里有个中路由中间件汇集https://cnodejs.org/topic/57838dfaee5f048d54f90877

首发于微信公众号:node前端

不妨关注一下