1.提供基于egg定制上层框架的能力
2.高度扩展性插件机制
3.内置多进程管理
4.基于koa开发性能优异
5.框架稳定.测试覆盖率高
6.渐进式开发
https://eggjs.org/zh-cn/intro/quickstart.html
1.初始化
$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple
$ npm i
2.启动项目
$ npm run dev
$ open http://localhost:7001
3.目录介绍
app目录为主文件,数据库操作 业务逻辑
config 针对egg插件配置
test 单元测试
.autod.conf autod配置文件
路由
module.exports = app => {
const { router, controller } = app;
router.get('/', controller.home.index);
router.get('/product',controller.product.index);
};
请求两种传参方式
query
ctx.body = `ctx.query ${ctx.query.id}`
params
需要在路由配置
router.get('/product/detail2/:id',controller.product.detail2);
ctx.body = `ctx.params ${ctx.params.id}`
其他请求方式
service服务
1.controller中逻辑更加简洁
2.保持业务逻辑的独立性,抽象出来的service可以被多个controller重复调用
3.将逻辑和展现分离,更容易编写测试用例
模板使用
安装插件
npm i egg-view-ejs --save
地址
https://www.npmjs.com/package/egg-view-ejs
前端系统搭建
vue/cli 3.0
vue下载
npm install -g @vue/cli
版本号
vue --version
帮助
vue --help
生成
vue create clint(name)
组件库
npm install --save vent
官网
https://youzan.github.io/vant-weapp/#/intro
链接mysql
安装 egg-mysql
npm i --save egg-mysql
开启插件
// config/plugin.js
exports.mysql = {
enable: true,
package: ‘egg-mysql’,
单数据源
路径 config/config.default.js
// config/config.${env}.js
exports.mysql = {
// 单数据库信息配置
client: {
// host
host: 'mysql.com',
// 端口号
port: '3306',
// 用户名
user: 'test_user',
// 密码
password: 'test_password',
// 数据库名
database: 'test',
},
// 是否加载到 app 上,默认开启
app: true,
// 是否加载到 agent 上,默认关闭
agent: false,
};
post请求 scrf
在config/config.default.js 加入
config.security = {
csrf: {
enable: false,
},
};
moment 时间处理插件
npm
cnpm i --save moment
前后段联调
1创建前端代理
module.exports ={
devServer:{
proxy:{
‘/article’:{ // 如果检测到以article 开头的请求的时候,就将代理到目标服务器上去
target:“http://lcoalhost:7001”,
ws:true, // 允许 websoket请求
changeOrgin:true //开启虚拟服务器,并且让虚拟服务器请求代理服务器,这样相当于两台服务器间的交互不用担心跨域问题
}
}
}
}