創(chuàng)建項目
// 創(chuàng)建項目$ npm i egg-init \-g$ egg\-init egg-example \--type\=simple$ cd egg-example$ npm i// 啟動項目$ npm run dev$ open localhost:7001
瀏覽項目結(jié)構(gòu):
創(chuàng)建一個路由,router.js
router.get('/user', controller.user.index);
創(chuàng)建一個控制器,user.js
'use strict'; const Controller = require('egg').Controller; class UserController extends Controller { async index() { this.ctx.body = [{name: 'tom'}, {name: 'jerry'}\] } } module.exports = UserController;
創(chuàng)建一個服務(wù),./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();}
創(chuàng)建模型層:以mysql + sequelize為例演示數(shù)據(jù)持久化
在 config/plugin.js 中引入 egg-sequelize 插件
sequelize: { enable: true, package: 'egg-sequelize',}
在 config/config.default.js 中編寫 sequelize 配置
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;};