Egg: yarn start 启动报错

Created on 9 Apr 2018  ·  24Comments  ·  Source: eggjs/egg

node:8.9.4
egg-init:1.13.0

yarn
yarn start
之后出现以下报错

Most helpful comment

image

堆栈里面本来就指出了啊

All 24 comments

qq20180409-172314 2x

qq20180409-172424 2x

报错不是写很清楚了么,你引入的 Controller 不存在。

另外,重新安装下依赖,不要锁版本(是的,我说的就是 yarn 这货)

我没引入controller,代码无任何改动。

删除依赖重新安装下看看,不要锁版本。

rm -rf node-modules && npm i

谢谢,删除node-modules后,重新 npm install解决了
不过貌似cnpm installl 和yarn同样的问题
可能是需要多次去install

跟多次没关系,就是不要锁版本,遇到问题先重新安装依赖看看。

前面用yarn安装过多次,没解决,锁版本真坑。

永远永远不要锁版本。

😁谢谢

@atian25 我们的错误提示也应该改善一下,提示一下 controller 的名称也好

image

第一眼看的先是红的报错,再接着是这个,不是太明显,容易忽略。

@fengmk2 看了下,是个问题,当前只有 router.get('/', 'home.index') 字符串格式才会提示

router.get('/', controller.home.index1); 这样的,传递进去就是 undefined 了,无法知道路径,除非 Controller 这里做个 Proxy 来监控 unknown prop

确实,如果 undefined 也拿不到文件路径,因为这个是挂在 obj 上的

@popomore 除非用 Proxy 黑魔法

换一种思路,指出他在哪里报错的这样不是也行嘛?不一定非得暴露出文件名。

image

堆栈里面本来就指出了啊

记起来了,之前我想优化这里的,没什么好办法,然后看到堆栈有,就懒得搞了。

在具体一点,比如:
(...router.js:1:10)
router.post('/api/getUserInfo', controller.userInfo.index)
controller not exists

这属于堆栈定制了,不考虑了。正常的研发应该都会看堆栈。

哦,对哦,有堆栈,忽略我的提议。

感觉提示有点误导,controller not exsits,然后跑去controller中去找问题了,要是改成you have configed an unexisted router会不会好一点

egg 的很多报错语义都无法理解!有时候猜都猜不到!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

yuu2lee4 picture yuu2lee4  ·  3Comments

ycvcb123 picture ycvcb123  ·  3Comments

Ailein picture Ailein  ·  3Comments

wujianling picture wujianling  ·  3Comments

whlsxl picture whlsxl  ·  3Comments