egg-sequelize线上问题 Class constructor LRUCache cannot be invoked without 'new'?
发布于 9 天前 作者 oneWalker 641 次浏览 最后一次编辑是 8 天前 来自 问答

egg在本地运行没有问题,线上代码出现问题错误日志: 8 ERROR 33 nodejs.SequelizeConnectionError: Class constructor LRUCache cannot be invoked without 'new’ at Promise.tap.then.catch.err (/usr/src/BDMS/bdmsback/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:133:19) at tryCatcher (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/util.js:16:23) at Promise._settlePromiseFromHandler (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/promise.js:517:31) at Promise._settlePromise (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/promise.js:574:18) at Promise._settlePromise0 (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/promise.js:619:10) at Promise._settlePromises (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/promise.js:695:18) at _drainQueueStep (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/async.js:138:12) at _drainQueue (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/async.js:131:9) at Async._drainQueues (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/async.js:147:5) at Immediate.Async.drainQueues [as _onImmediate] (/usr/src/BDMS/bdmsback/node_modules/bluebird/js/release/async.js:17:14) at runCallback (timers.js:705:18) at tryOnImmediate (timers.js:676:5) at processImmediate (timers.js:658:5) name: "SequelizeConnectionError" parent: {} original: {} pid: 33 我在git上面找到一个解决方法,说是babel转义产生的问题:https://github.com/sequelize/sequelize/issues/7840 我按照里面的建议进行了部分修改,发现并没有变好

但是按照提供的参考意见是上面第二个修改babel的配置,所以想问下egg-script在哪里可以修改Babel的设置。只是在package-json.lock上看到有指定babel目录 谢谢啦

7 回复

服务端的为啥要用babel ?

@waitingsong 用的egg自带的init项目进行扩展的,但是好像是babel转译es6的问题

@oneWalker 服务端没必要转换。难道源码是esm的格式。

@waitingsong 并没有用esm的模式 但是我也不知道为什么,而且我在本地pc进行连接调试的时候并没有什么问题

问题已经解决,是因为淘宝镜像的NPM包问题,导致docker生成的image有问题

还有这种问题…… 打包npm i 的时候不报错么

@waitingsong 打包的时候没有出错,但是生成的image运行的时候就会出现问题。 清掉了image后用官方包就没有问题。

回到顶部