「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」 |
---|
今天还是继续学习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);
复制代码