koa解析数据的方式
在前端中往后端传递数据 无非就是五种方式
-
get params /:id
-
get query ?name=wangfeng&age=19
-
post json {“name”:“wangfeng”,“age”:“19”} — 使用最多的方式必须会
-
post x-www-form-urlencoded
-
post form-data
const Koa = require('koa');
const router = require('@koa/router');
const app = new Koa();
// 引入中间件解析post中的json数据
const bodyparser = require('koa-bodyparser');
const multer = require('@koa/multer');
// 引入中间件解析post中的from-data数据
const fromParser = multer();
// 使用中间件
app.use(bodyparser());
const userRouter = new router({ prefix: '/users' });
userRouter.get('/:id', (ctx, next) => {
ctx.body = '获取用户信息' + ctx.params.id;
});
userRouter.get('/', (ctx, next) => {
ctx.body = '查询用户信息' + JSON.stringify(ctx.query);
});
// 对于post里面的json和urlencoded数据我们需要借助第三方的库来解析数据 npm i koa-bodyparser
userRouter.post('/', (ctx, next) => {
ctx.body = '发送过来的数据-json';
console.log(ctx.request.body);
});
userRouter.post('/', (ctx, next) => {
ctx.body = '发送过来的数据-urlencoded';
console.log(ctx.request.body);
});
// 如果要解析form-data我们也需要借助第三方库 npm i @koa/multer multer
userRouter.post('/fromdata', fromParser.any(), (ctx, next) => {
ctx.body = '发送过来的数据-form-data';
console.log(ctx.request.body);
});
app.use(userRouter.routes());
app.use(userRouter.allowedMethods());
app.use((ctx, next) => {
ctx.res.end('你好');
});
app.listen(8000, () => {
console.log('服务器启动成功');
});