[eggjs/egg]测试环境一直报这个invalid overriden method: "__CONSTRUCT"

2025-11-04 680 views
3

错误日志 BadRequestError: invalid overriden method: "__CONSTRUCT" File "/home/work/bin/node_modules/koa/lib/context.js", line 97, col 11, in Object.throw throw createError(...args); File "/home/work/bin/node_modules/koa-override/index.js", line 33, col 18, in overrideMethod ctx.throw(400,invalid overriden method: "${method}"); File "/home/work/bin/node_modules/koa/node_modules/koa-compose/index.js", line 42, col 32, in dispatch return Promise.resolve(fn(context, dispatch.bind(null, i + 1))); File "/home/work/bin/node_modules/koa-bodyparser/index.js", line 86, col 11, in bodyParser await next(); ?, in null.<anonymous> File "internal/process/next_tick.js", line 228, col 7, in process._tickDomainCallback

回答

1

提供最小可复现仓库

4

我这里最近也经常出现, error信息打印出来也没有足够的信息来重现

5

报错行数都给出来了,既然给不了最小可复现仓库,那自己 debug 下不就知道了。

3

调用栈是给出的行数是依赖的库.

2

然后呢?断点一步步分析为啥会报错到这里呗。

2

因为没有记录到因为何种数据才导致这个错误的 所以不知道怎么触发

0

那就没办法了,复现不了没法查。

https://github.com/node-modules/koa-override/blob/master/index.js#L18

可能是外部传入的 headers 或 body 上的属性,触发了这里面的逻辑。

8

我把全局的错误处理加了告警,出错后会告警到钉钉群里面 查了下这个是某种漏洞扫描工具扫描触发的,对业务影响倒是不大. 只是群里面有告警 想把这个告警给自行忽略掉.

0

这种可以在 Nginx 或者最前面加个 middleware 直接洗掉

8

遇到类似的问题 生产环境下跑起来经常会报错 { name: "Application", env: "release", level: "ERROR", date: "2020-06-30 14:43:22", hostname: "pingou-release-594f9d4f99-j7nrg", pid: 187, uid: "", reqid: "76e5b222-07ad-485e-bf28-2ae4ef63e30f", use: 59997, from: "error", error: { name: "BadRequestError", message: "request aborted, check bodyParser config", stack: "BadRequestError request aborted check bodyParser config at IncomingMessage.onAborted (/usr/src/app/node_modules/raw-body/index.js 231 10) at IncomingMessage.emit (events.js 198 13) at abortIncoming (_http_server.js 450 9) at socketOnClose (_http_server.js 443 3) at Socket.emit (events.js 203 15) at TCP._handle.close (net.js 607 12)", }, }

0

仔细看下报错信息和上面的回复就知道了。