本文地址:https://www.cnblogs.com/veinyin/p/11944476.html
controller service
命名规则
文件名小写
class 名是 文件名大写 + Controller | Service 驼峰命名
例: controller 文件夹下新建一个 user.js 文件
异步调用
如果调用服务 需要用 async await
如果用 ejs 渲染页面 需要用 async await
调用方法
this.app.controller.文件名.文件内定义的方法名
this.service.文件名.文件内定义的方法名
均可传参
例 调用 controller 下 user 里的 info 方法
const res = await this.app.controller.user.info()
路由传参
route.js 中定义的路由 -> 地址栏输入的路由
取参方式 -> 取参结果
get 传参
url -> url?a=1
this.ctx.query -> { a: 1 }
url/:id -> url/1
this.ctx.params -> { id: 1 }
post 传参
this.ctx.request.body -> { a: 1, b: 2 }
put 传参
url/:id -> url/1
this.ctx.params -> { id: 1 }
delete 传参
url/:id -> url/1
this.ctx.params -> { id: 1 }
post 请求配置
在 config/config.default.js 文件中添加
静态资源
放置目录 app/public 必须 /public 开头 避免路径问题
例 使用图片资源
app/public/images/demo.jpg
<img src="/public/images/demo.jpg" />
MySQL
安装 egg-mysql 插件 参照文档配置 数据库相关信息
egg 自动在 app 下挂载 mysql 可以通过 this.app.mysql 使用相关方法
get [表名, 查询条件]
例:
get('table_name', { id: 1 }) // 查询一条数据
insert [表名, 插入内容]
例:
insert('table_name', { a: 1, b: 2 }) // 插入数据
select [表名, 可选项]
where 查询条件
columns 要查询的项
order 排序
limit offset 翻页相关
例:
select('table_name') // 查询表
select('table_name', {
where: { id: 1 },
columns: ['name', 'age', 'gender'],
order: [ ['id', 'desc'] ],
limit: 10,
offset: 0,
});
update [表名, 插入内容, 可选项]
例:
update('table_name', { name: 'yyh' }, { where: { userId: 1 } })
默认用 ID 查询 如果插入内容内没设置就在 options 里面指定一下键名
delete [表名, 删除条件]
例:
delete('table_name', { id: 1 })
query [语句]
例:
query('select userName, userAge from table_name where id = ?', [1])
如果要使用 sql 语句使用 query
END~~~≥ω≤