egg的简单使用

egg出现的原因

  • Express 和 Koa 是 Node.js 社区广泛使用的框架,简单且扩展性强,非常适合做个人项
    目。但框架本身缺少约定,标准的 MVC 模型会有各种千奇百怪的写法。Egg 按照约定进行
    开发,奉行『约定优于配置』,团队协作成本低。

egg的优势

  • Egg.js 基于 Es6、Es7 以及 Typescript、Koa2 使得 Nodejs 具有更规范的开发模式、更低
    的学习成本、更优雅的代码、更少的开发成本、更少的维护成本。为企业级框架而生。

egg安装

  • npm i egg-init -g
  • egg-init [projectName] --type=simple
  • cd [projectName]
  • npm i
  • npm run dev

egg是一个MVC框架

  • Mode:模型,专门和数据打交道(查询数据库 请求数据);
  • View:视图,页面存放的地方;
  • controller:控制器,负责处理业务逻辑;

egg目录结构与工作流程

目录结构,主要分为appconfig(配置文件目录),app下的文件目录以及作用为
  • controller:控制器,用来处理逻辑,并返回数据;对应MVC中的C
  • public:存放静态资源文件;
  • View:存放前台文件;对应MVC中的V;
  • service:和数据打交道,查询数据库等,对应MVC中的M
egg工作流程:
  • 用户输入路径,
  • 根据路径去router.js中去匹配,查找到对应controller
  • 在根据controller中的逻辑,分别去查询数据和请求页面;

URL传值的两种方式

GET传值
  • 通过this.ctx.query的方式能够获取到查询字符串的值,返回值是一个对象形式
    • 如:url=127.0.0.1:7001/music?id=123-----this.ctx.query // { id: 123 }
动态路由
  • 在路由中定义路径router.get('/music/:id', controller.music.music)
    • 通过console.log(this.ctx.params) // { id: xxx }

服务的几条基本原则:

  • 服务已经被挂在到ess.jsthis下面,我们可以在controller中直接通过this.service.xxx的方式去获取;
  • 一个controller能够调用多个M;
  • 所有的service都可以相互访问;
M的命令规则
  • 要使用驼峰命名法;
  • 支持多级目录;
    • 多级目录中,在使用时,需要通过.的方式去拿到数据;
    • app/service/bin/user.js ---- this.service.bin.user
'use strict';

const Service = require('egg').Service;

class MusicService extends Service {
  async index() {
    const music = [ 1, 2, 3, 4 ];
    return music;
  }
}

module.exports = MusicService;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值