如何在koa-router中使用body-parser
const Koa = require('koa');
const app = new Koa();
const router = require('koa-router')();
const bodyParser = require('koa-bodyparser');
app.use(router.routes());
app.use(bodyParser());
router.post('/test', async function (next) {
this.body = this.request;
console.log(`我是router中的=====> ${JSON.stringify(this.request.body)}`);
});
app.use(async ctx=> {
console.log(`我不是router中的=====> ${JSON.stringify(ctx.request.body)}`);
ctx.body = ctx.request.body;
});
app.listen(3000);
//打印结果
我不是router中的=====> {"tt":"11"}
我是router中的=====> undefined
使用postman测试
/**
"koa": "^2.1.0",
"koa-bodyparser": "^4.1.0",
"koa-router": "^5.4.0"
*/
3 回复
已经解决 替换下 app.use(router.routes()); app.use(bodyParser()); 顺序就可以了
this 和ctx 可以在同一套代码中混用吗?
@yakczh 只是测试一下啊,koa-router里面直接取this,ctx是在app.use中