建立項目mysql
// 建立項目 $ npm i egg-init \-g $ egg\-init egg-example \--type\=simple $ cd egg-example $ npm i // 啓動項目 $ npm run dev $ open localhost:7001
瀏覽項目結構:web
建立一個路由,router.jssql
router.get('/user', controller.user.index);
建立一個控制器,user.jsnpm
'use strict'; const Controller = require('egg').Controller; class UserController extends Controller { async index() { this.ctx.body = [{name: 'tom'}, {name: 'jerry'}\] } } module.exports = UserController;
建立一個服務,./app/service/user.js架構
'use strict'; const Service \= require('egg').Service; class UserService extends Service { async getAll() { return \[ {name: 'tom'}, {name: 'jerry'} \] } } module.exports \= UserService;
async index() { const { ctx } = this; ctx.body = await ctx.service.user.getAll(); }
建立模型層:以mysql + sequelize爲例演示數據持久化app
在 config/plugin.js 中引入 egg-sequelize 插件框架
sequelize: { enable: true, package: 'egg-sequelize', }
在 config/config.default.js 中編寫 sequelize 配置async
sequelize: { dialect: "mysql", host: "127.0.0.1", port: 3306, username: "root", password: "admin", database: "test" }
module.exports = app => { const { STRING } = app.Sequelize; const User = app.model.define( "user", { name: STRING(30) }, { timestamps: false } ); return User; };