egg 是一个MVC的框架
- model 模型 和数据打交道。 查询数据库,请求数据 放到service 中。新建service 目录
- view 视图 模板 页面的展示
- Controller 控制器 负责处理一些业务逻辑
在Controller 的 home.js 中主要是 渲染模板
'use strict';
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.body = 'hi, egg'; //渲染模板 新建 view 目录
await this.ctx.render("index")
}
async news() {
const { ctx } = this;
ctx.body = 'news, egg';
}
}
module.exports = HomeController;
可以在同目录下建一个admin.js 的文件 如下:
'use strict';
const Controller = require('egg').Controller;
class AdminController extends Controller {
async index() {
//egg 基于 koa
// koa 给用户反馈信息
console.log(this) // 属于node.js 所以这个打印的输出是在服务中看的
// this 包含了AdminController config app 等等
this.ctx.body = "用户管理"
}
}
module.exports = AdminController;
新建了admin.js 后要在路由【router.js】中配置
const { Controller } = require("egg");
/**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/news', controller.home.news);
router.get("/admin", controller.admin.index) // 新建的admin 引入 index
};
可在浏览器 http://127.0.0.1:7001/admin 访问
关于public 目录是放静态资源的 。如:js,css,images
Controller 中引入的模板放在新建的view 目录下
middleware 目录是放中间件的
使用vscode 编程时可以安装eggjs的快捷提示插件