body-parser报错

来源:4-1 参数获取与LinValidator校验器

慕斯卡9784670

2019-08-18

老师好,我这边使用body-parser和koa-bodyparser都会报错。报错如下:

图片描述
如果把bodyparser注释掉就可以正常运行。
body-parser已经安装,截图如下:
图片描述

postMan参数如下:
图片描述

代码如下:

const Koa = require('koa');
const bodyParser = require('body-parser')

const InitMananger = require('./core/init.js');
// 函数
const app = new Koa();  // 应用程序对象

app.use(bodyParser.json())

InitMananger.initCore(app);

app.listen(3000);
const Router = require('koa-router');
var router = new Router;
router.post('/v1/classic/latest', (ctx, next) => {
  const path = ctx.params;
  const query = ctx.request.query;
  const header = ctx.request.header;
  // const body = ctx;
  ctx.body = {key: 'classic' };
})

module.exports = router;

nodemon 启动的时候,bodyparser是不会报错的,服务可以正常启动,但是只要一发送请求就会报错.

如果用课程里面的koa-bodyparser运行就直接报错。
图片描述

目前个人感觉可能是我使用body-parser的姿势不对,但是没有找到原因。希望老师解答,如果资料提供不全,我继续提供。

多谢老师百忙中抽空解答,谢谢。

ps: 发现原因了,nodemon+debug启动,然后报的错,我直接用nodemon app.js,不报错,可以在控制台打印出body的信息。但是不知道什么原因。

{
      "type": "node",
      "request": "launch",
      "name": "nodemon",
      "runtimeExecutable": "nodemon",
      "program": "${workspaceFolder}/app.js",
      "restart": true,
      "console": "integratedTerminal",
      "internalConsoleOptions": "neverOpen"
    },
写回答

2回答

7七月

2019-08-20

我看了下没看出代码有什么问题,可否对比下源码?或者再看下课程?我也测试了课程里的代码均没有出现这个问题

0
1
慕斯卡9784670
好的,我再试试,谢谢7月老师
2019-08-21
共1条回复

慕斯卡9784670

提问者

2019-08-18

//img.mukewang.com/szimg/5d58744c08d4746310920646.jpg


老师,发现原因了,用nodemon启动debug就会报错。请帮我看看配置是否有问题,或者其他问题?

0
1
阿川阿川
的确有这个问题。
2020-03-18
共1条回复

Node.js+Koa2+MySQL打造前后端分离精品项目《旧岛》

理解异步编程本质/培养面向对象思维,独立完成Node.js服务端开发

2223 学习 · 878 问题

查看课程