krislee94 / docs

日常文档整理
1 stars 0 forks source link

egg的使用 #27

Open krislee94 opened 4 years ago

krislee94 commented 4 years ago

egg的使用

设计原则


Egg 的插件机制有很高的可扩展性,一个插件只做一件事
Egg 奉行『约定优于配置

与社区框架的差异

Express 是 Node.js 社区广泛使用的框架,简单且扩展性强,非常适合做个人项目。但框架本身缺少约定,标准的 MVC 模型会有各种千奇百怪的写法。Egg 按照约定进行开发,奉行『约定优于配置』,团队协作成本低。

Sails 是和 Egg 一样奉行『约定优于配置』的框架,扩展性也非常好。但是相比 Egg,Sails 支持 Blueprint REST API、WaterLine 这样可扩展的 ORM、前端集成、WebSocket 等,但这些功能都是由 Sails 提供的。而 Egg 不直接提供功能,只是集成各种功能插件,比如实现 egg-blueprint,egg-waterline 等这样的插件,再使用 sails-egg 框架整合这些插件就可以替代 Sails 了。

特性

快速开始

脚手架的使用 egg-init

$ npm i egg-init -g
$ egg-init -h
$ egg-init --type simple [dest] //有simple 和 plugin两个选项

启动项目

$ npm run dev
$ open http://localhost:7001

理解Egg

所有NodeJS框架最基本的核心就是通过原声库http or https 启动一个后端服务 http.createServer(this.serverCallBack()).listen(...arg),然后所有的请求都会进入serverCallBack 然后我们可以通过拦截,在这个方法中处理不同的请求

Koa 是一个洋葱模型, 其是基于中间件来实现的.通过use来添加一个中间件, koa-router其实就是一个koa的中间件,我们的所有的请求都会将所有的中间件都执行一遍。


image.png

image.png