CNode

如何在koa-router中使用body-parser

问答
Wwithout-yy发布于9 年前最后回复9 年前3 回复9745 浏览0 收藏
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)

W
without-yy#1·9 年前

已经解决 替换下 app.use(router.routes()); app.use(bodyParser()); 顺序就可以了

Y
yakczh#2·9 年前

this 和ctx 可以在同一套代码中混用吗?

W
without-yy#3·9 年前
引用 yakczhthis 和ctx 可以在同一套代码中混用吗?

@yakczh 只是测试一下啊,koa-router里面直接取this,ctx是在app.use中

参与回复
登录后即可参与回复。登录