egg是阿里出品的一款后端web框架,基于koa封装,并做了一些约定。
为什么叫egg?egg有孕育的含义,因为egg的定位是企业级web基础框架,旨在帮助开发者孕育适合自己团队的框架。
哪些产品是用egg开发的?语雀就是用egg开发的
egg和koa是什么关系?koa是egg的基础框架,egg是对koa的增强。
学习egg需要会koa吗?不会koa也可以直接上手egg,但是会koa的话有助于更深层次的理解egg。
创建项目npmiegg-init-gegg-initegg-test--type=simple//例如:egg-init项目名称--type=simplecdegg-testnpmi目录结构
├──app│├──controller││└──│└──├──config│├──│└──├──
这就是最小化的egg项目,用npmi安装依赖之后,执行启动命令:
npmrundev[master][master][master]agent_worker用于配置URL路由规则│├──controller/用于存放数据库模型│├──service/(可选)用于编写中间件│├──schedule/(可选)用于放置静态资源│├──view/(可选)用于框架的扩展│├──(可选)│├──(可选)│├──(可选)│├──(可选)│├──(可选)│└──(可选)├──config/|├──用于编写配置文件(env可以是default,prod,test,local,unittest)
这是由egg框架或内置插件约定好的,是阿里总结出来的最佳实践,虽然框架也提供了让用户自定义目录结构的能力,但是依然建议大家采用阿里的这套方案。在接下来的篇章当中,会逐一讲解上述约定目录和文件的作用。