koa路由系统2

  1. ctx.path =>获取请求路径
  2. ctx.method => 获取请求方法
  3. ctx.body => 设置返回客户端的数据
const Koa = require('koa')
const app = new Koa()

app.use((ctx, next)=>{
  console.log(ctx.path)
  console.log(ctx.method)
  if(ctx.path === '/classic/latest' && ctx.method === 'GET'){
    ctx.body = {
      key: 'classic'
    }
  }
})

app.listen(3000)

当请求接口多的时候,为了避免在中间件中写多个if判断语句,我们要用koa-router,别忘记安装了
koa-router文档

const Koa = require('koa')
const Router = require('koa-router')

const app = new Koa()
const router = new Router()

// 第二个参数也是中间件,所以我们能够使用ctx,next参数
router.get('/classic/latest', (ctx, next)=>{
  ctx.body = {
    'key': 'classic'
  }
})

// 注册中间插件
app.use(router.routes())

app.listen(3000)
  1. api版本划分,随着业务的变更将api划分成不同的版本
    版本号可以放在url路径里面、路径参数、头部携带
    将路由文件提取成api文件,然后分别创建v1、v2、v3文件夹,
    然后在v1文件夹下创建classic.js和book.js
    classic.js
const Router = require('koa-router')
const router = new Router()

router.get('/v1/classic/latest', (ctx, next)=>{
  ctx.body = {
    key: 'classic'
  }
})

module.exports = router

book.js

const Router = require('koa-router')
const router = new Router()

router.get('/v1/book/hot_list', (ctx, next)=>{
  ctx.body = {
    key: 'book'
  }
})

module.exports = router

app.js

const Koa = require('koa')
const classic = require('./api/v1/classic')
const book = require('./api/v1/book')

const app = new Koa()


// 注册中间插件
app.use(classic.routes())
app.use(book.routes())

app.listen(3000)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值