安装 node
- 至Node.js 官网下载 node8.9.x LTS 版本(长期支持版本)</p>
安装你喜欢的编辑器
- Visual studio code、
- Atom
- ...
本次以 Visual studio code 演示
初始化项目
-
打开终端
Ctrl+`
-
输入初始化项目命令
npm init
-
输入安装 egg 命令
npm install egg --save
-
输入安装 egg-dev 命令
npm install egg-bin --save-dev
约定大于配置
MVC 架构的 controller
- 新建文件夹./app/controller/
- 新建./app/controller/index.js
Hello world
-
拿到 egg 对象
const egg = require("egg");
-
拿到 Controller 基类
const Controller = egg.Controller;
-
基于 Controller 基类写一个自己的 Controller 类
class HomeController extends Controller {} module.exports = HomeController;
-
在自己 Controller 类中写一个控制器函数
class HomeController extends Controller { async index() { this.ctx.body = "Hello world"; } }
路由
新建./app/router.js
-
开始撰写要导出路由模块
module.exports = (app) => {};
-
开始撰写要导出路由模块
module.exports = (app) => { const { router, controller } = app; router.get("/", controller.index.index); };
egg.ctx
-
继续撰写如下 controller
class HomeController extends Controller { async index() { this.ctx.body = "Hello world"; } async about() { this.ctx.body = "这个是关于"; } async get() { this.ctx.body = { url: this.ctx.url, method: this.ctx.method, query: this.ctx.query }; } async getId() { this.ctx.body = { id: this.ctx.params.id, url: this.ctx.url, method: this.ctx.method, query: this.ctx.query }; } }
-
继续撰写如下路由
module.exports = app => { const { router, controller } = app; router.get("/", controller.index.index); router.get("/about", controller.index.about); router.get("/get", controller.index.get); router.get("/getid/:id", controller.index.getId); };
进行测试
-
打开
http://host:port/
-
打开
http://host:port/about
-
打开
http://host:port/get?page=5&number=10
-
打开
http://host:port/getid/1234567?page=5&number=10
静态资源服务器
-
安装静态资源服务插件
npm i egg-static --save
-
打开
http://host:port/public/index.html