dpc761218914 / JustNotes

javaweb,android,node.js各种不错的项目汇总
8 stars 0 forks source link

egg源码学习记录 #36

Open dpc761218914 opened 6 years ago

dpc761218914 commented 6 years ago

1、Egg在调用controller/service文件夹下的模块时,不需要require,如何实现的? 在原生Node/Koa中,当我们需要调用其他模块时,需要require, 非常繁琐。(java体系都是auto import) 但在Egg中,我们可以通过app.controller.文件名的形式直接调用。 猜想,是不是在app文件夹下任意写一个文件夹xxx,再在xxx下写一个yyy.js, 就可以实现app.xxx.yyy直接调用?实践结果是No。 先说结论,app/加文件夹的方式是实现不了上述的目的的,但在controller/service文件夹里嵌套文件夹,可以实现。这个在官方文档里没有直接写明。 原理: Egg在启动worker进程时,会执行loadController, loadService等方法,遍历解析app/controller, app/service文件夹下的所有js文件,把导出的模块进行挂载, 对应实现模块是egg-core。 参考: https://blog.csdn.net/wangkai0681080/article/details/79665724