前端迈向架构师第一步-快速了解koa框架-2
今天还是继续学习KOA框架的知识( ̄▽ ̄)"
本文介绍koa常用的一些插件:
@koa/cors
跨域处理koa-body
协议处理
使用koa-body和@koa/cors
koa-body
处理request过来的请求里面的数据@koa/cors
处理一些跨域请求
安装: npm install -S koa-body @koa/cors
使用顺序注意: 需要先使用
koa-body
处理request过来的请求里面的数据,然后再使用@koa/cors
处理一些跨域请求
Koa中post传值的获取
var Koa = require('koa'); var Router = require('koa-router'); var cors = require('@koa/cors'); var koabody = require('koa-body'); var app = new Koa(); var router = new Router(); router.post('/post', async (ctx, next) => { let {body}=ctx.request;//获取前端给的值 ctx.body={//把body里面前端给的内容再返回给前端 ...body } }); //app.use注意顺序 app.use(koaBody())//处理request过来的请求里面的数据 app.use(cors())//处理一些跨域请求 app.use(router.routes()) .use(router.allowedMethods()); app.listen(3000); 复制代码
Koa中get传值及获取get传值
键值对拼接传参
,接收参数主要通过ctx.qruery
获取,需要注意的是在ctx与ctx.request
里均可以获得一样的结果。动态路由传参
,接收参数主要通过ctx.params
获取。
键值对拼接传参 示例如下:
var Koa = require('koa'); var router = require('koa-router')(); var app = new Koa(); // http://localhost:3000/details?id=1&name=jiangyx router.get('/details',async(ctx)=>{ // 从ctx中读取Get传值 console.log(ctx.url);// /details?id=1&name=jiangyx console.log(ctx.query); // { id: '1', name: 'jiangyx' } // 获取的是对象,用的最多的方式 console.log(ctx.querystring) // id=1&name=jiangyx // 获取的是字符串 // 从ctx里的request里获取Get传值 console.log(ctx.request.url); // /details?id=1&name=jiangyx console.log(ctx.request.query); // { id: '1', name: 'jiangyx' } console.log(ctx.request.querystring); // id=1&name=jiangyx }); app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000); 复制代码
动态路由传参 示例如下:
var Koa = require('koa'); var router = require('koa-router')(); var app = new Koa(); // http://localhost:3000/details/1/jiangyx router.get('/details/:id/:name', async (ctx) => { // 获取动态路由的传值 console.log(ctx.params); // { id: '1' ,name:'jiangyx'} }); app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000);
作者:ava鱼
链接:https://juejin.cn/post/7031724999006224391