elpis全栈课程学习之elpis-core学习总结
- IT业界
- 2025-09-16 08:45:01

elpis全栈课程学习之elpis-core学习总结 核心原理
elpis-core是全栈框架elpis的服务端内核,主要应用于服务端接口的开发以及页面的SSR渲染,elpis-core基于约定优于配置的原理,通过一系列的loader来加载对应的文件,大大节约用户的开发成本。elpis-core使用户的注意力使用始终集中于业务开发,而无需关注其他。
elpis-core目录结构 ├─ 📁elpis-core │ ├─ 📁loader │ │ ├─ 📄config.js │ │ ├─ 📄controller.js │ │ ├─ 📄extend.js │ │ ├─ 📄middleware.js │ │ ├─ 📄router-schema.js │ │ ├─ 📄router.js │ │ └─ 📄service.js | │ ├─ 📁utils │ ├─ 📄env.js │ ├─ 📄index.js ├─ 📄index.js elpis-core应用的目录机构 ├─ 📁app │ ├─ 📁controller // 存放业务处理文件,进行业务逻辑的处理 │ ├─ 📁extend // 存放拓展文件,比如:日志文件... │ ├─ 📁middleware // 中间件逻辑处理,挂载到koa实例进行一系列的处理 │ ├─ 📁public │ │ ├─ 📁output │ │ └─ 📁static │ ├─ 📁router // 路由文件 │ ├─ 📁router-schema // 对 router 规则校验的文件 │ ├─ 📁service // 服务层的文件,主要用于服务端的交互 │ └─ 📄middleware.js // 全局的中间件 loader具体实现原理通过glob这个库读取相对应的目录,加载每个目录下的文件并挂载到Koa实例上
controller-loader模块的代码实现 // 读取app/controller下所有文件 const fileList = readFile(`.${sep}controller`, `.${sep}**${sep}**.js`, app) const controllers = {} fileList.forEach(file => { // 提取文件名称 let name = path.resolve(file) // 截取路径 name = subPath(name, 'controller') // 将custom-module/custom-controller -> customModule/customController name = toCamelCase(name) //挂载controller到app实例 let tempController = controllers const names = name.split(sep) // [customModule, customController] for (let i = 0, len = names.length; i < len; i++) { if (i === len - 1) { const ControllerModule = require(path.resolve(file))(app) // 是文件 tempController[names[i]] = new ControllerModule() } else { // 文件夹 if (!tempController[names[i]]) { tempController[names[i]] = {} } tempController = tempController[names[i]] } } }) app.controller = controllers注:其余模块的loader与其类似,这里不过多赘述
总结以上内容来源于抖音哲玄前端博主的全栈实践课程,结合我的理解进行的思路整理,如有误,欢迎各位大佬指正。
elpis全栈课程学习之elpis-core学习总结由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“elpis全栈课程学习之elpis-core学习总结”
上一篇
VMwareUbuntu共享目录