老师,你好,关于const { body } = ctx.request
来源:2-5 Koa开发RESTful接口,GET&POST获取数据及数据格式化方法【进阶篇】
qq_潇生落雨_0
2020-01-02 22:28:19
老师,你好,我按照你课程的写法去实践,遇到了一件不是很理解的事:
大致代码如下:
router.post('/post', (ctx, next) => { const { body } = ctx.request console.log(ctx.request); console.log(body) })
输出的对象如下:
{ method: 'POST', url: '/post', header: { 'content-type': 'application/json', 'user-agent': 'PostmanRuntime/7.21.0', accept: '*/*', 'cache-control': 'no-cache', 'postman-token': 'd648b64b-506e-4ce0-a9c0-a747854960ed', host: 'localhost:3000', 'accept-encoding': 'gzip, deflate', 'content-length': '23', connection: 'keep-alive' } }
按照我的理解,ctx.request不是应该有body这个对象的吗?但是body确实可以输出我传入的参数
请问这个老师知道是为什么吗?
附完整代码
/* 写一个RESTful接口 */ const Koa = require('koa') const Router = require('koa-router') const cors = require('@koa/cors') const koaBody = require('koa-body'); const app = new Koa() const router = new Router() router.post('/post', (ctx, next) => { const { body } = ctx.request console.log(ctx.request); }) app.use(koaBody()); app.use(cors()); app.use(router.routes()) .use(router.allowedMethods()) app.listen(3000)
3回答
是不是post的时候没有传?
qq_潇生落雨_0
提问者
2020-01-07
qq_潇生落雨_0
提问者
2020-01-06
不是的,我好奇的是为什么我使用命令行console.log出来的结果里面是没有body的(第一张图),但实际上body应该是存在的,我也试了一下,调试模式下确实是可以看到body(第二张图):调试的ctx.request以及左侧的调试界面变量里也看到了body的值。
相似问题