koa-router路由使用
前言:最新要基于nodejs写rpc接口,顺带熟悉一些koa框架的router功能。
一、搭建框架
koa官方文档:
https://koa.nodejs.cn/ (2.14)
使用教程
get示例:
https://chenshenhai.github.io/koa2-note/note/route/koa-router.html
post示例:
https://juejin.cn/post/6920445522729762824
版本管理等
https://juejin.cn/post/7006874471877804062
二、使用
1,获取参数,三种方式
console.log(ctx.params, ctx.request.params);
(1)在URL路由中/tick/:tick中的:tick
ctx.params或ctx.request.params
得到一个对象
(2)在URL ?a=b
ctx.query(get请求)
得到一个对象
(3)获取post JSON参数
ctx.request.body
得到一个对象
需要安装
koa-bodyparser
npm插件,获取post请求参数;const bodyParser = require('koa-bodyparser')
const app = new Koa()
app.use(bodyParser())
附自己当前的路由代码
// const Koa = require('koa') // const fs = require('fs') // const Router = require('koa-router') // const bodyParser = require('koa-bodyparser') import Koa from 'koa' import fs from 'fs' const app = new Koa() import Router from 'koa-router' import bodyParser from 'koa-bodyparser' import getSRC20TokenInfo from './v1/getSRC20TokenInfo.js' import getSRC20Balance from './v1/getSRC20Balance.js' import getSRC20Events from './v1/getSRC20Events.js' import getSRC20LatestHeight from './v1/getSRC20LatestHeight.js' let home = new Router() // 子路由1 home.get('/', async ( ctx )=>{ let html = ` <ul> <li><a href="/page/helloworld">/page/helloworld</a></li> <li><a href="/page/404">/page/404</a></li> </ul> ` ctx.body = html }) // 子路由2 let page = new Router() page.get('/404', async ( ctx )=>{ ctx.body = '404 page!' }).get('/helloworld', async ( ctx )=>{ ctx.body = 'helloworld page!' }) // 装载所有子路由 let router = new Router() router.use('/', home.routes(), home.allowedMethods()) router.use('/page', page.routes(), page.allowedMethods()) // 获取token信息 router.use('/api/v1/src20/tick', getSRC20TokenInfo.routes(), getSRC20TokenInfo.allowedMethods()) // 获取余额 router.use('/api/v1/src20/balance', getSRC20Balance.routes(), getSRC20Balance.allowedMethods()) // 获取事件铭文信息 router.use('/api/v1/src20/events', getSRC20Events.routes(), getSRC20Events.allowedMethods()) // 获取最新高度 router.use('/api/v1/src20/height', getSRC20LatestHeight.routes(), getSRC20LatestHeight.allowedMethods()) // 加载路由中间件 app.use(bodyParser()).use(router.routes()).use(router.allowedMethods()) app.listen(3000, () => { console.log('[demo] route-use-middleware is starting at port 3000') })
Koa入门(三)Koa 路由。从工程化角度,如何使用路由。
https://juejin.cn/post/6920445522729762824
https://juejin.cn/post/7006874471877804062