官网

简单命令

yarn create egg --type=simple
image.png
yarn install

dev 与 start

  • dev 主要是针对本地开发环境
  • start 主要针对线上运行环境

主要文件介绍

image.png

从一个文件入手看看

home.js

  1. 'use strict';
  2. const Controller = require('egg').Controller;
  3. class HomeController extends Controller {
  4. async index() {
  5. const { ctx } = this;
  6. ctx.body = 'hi, egg ';
  7. }
  8. }
  9. module.exports = HomeController;

可以发现

  • 虽然 node.js 本身是异步的,但是egg 是用同步的方式——async
  • ctx 是 一个全局的上下文

我们写多一个页面

  1. 'use strict';
  2. const Controller = require('egg').Controller;
  3. class HomeController extends Controller {
  4. async index() {
  5. const { ctx } = this;
  6. ctx.body = 'hi, egg aa';
  7. }
  8. async demo() {
  9. const { ctx } = this;
  10. ctx.body = 'hi EGGGG';
  11. }
  12. }
  13. module.exports = HomeController;

此时直接在页面url 加 demo 是直接 404 的,因为还需要再配置路由
router.js

  1. 'use strict';
  2. /**
  3. * @param {Egg.Application} app - egg application
  4. */
  5. module.exports = app => {
  6. const { router, controller } = app;
  7. router.get('/', controller.home.index);
  8. router.get('/demo', controller.home.demo);
  9. };

这个 app 是 Egg 的一个实例,也就可以调用 实例中的一些方法、属性来进行操作。
image.png