egg 项目搭建流程图详解

Egg 的插件机制有很高的可扩展性,一个插件只做一件事(比如 Nunjucks 模板封装成了 egg-view-nunjucks、MySQL 数据库封装成了 egg-mysql)。Egg 通过框架聚合这些插件,并根据自己的业务场景定制配置,这样应用的开发成本就变得很低。

Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开发人员的学习成本,开发人员不再是『钉子』,可以流动起来。没有约定的团队,沟通成本是非常高的,比如有人会按目录分栈而其他人按目录分功能,开发者认知不一致很容易犯错。但约定不等于扩展性差,相反 Egg 有很高的扩展性,可以按照团队的约定定制框架。使用 Loader 可以让框架根据不同环境定义默认配置,还可以覆盖 Egg 的默认约定。

egg官网:https://eggjs.org/zh-cn/intro/index.html

egg使用流程

  1. 新建文件夹,在终端打开(文件夹名为英文)
  2. 输入命令 npm init egg --type=simple
  3. npm i 下载node-modeles依赖包
  4. npm run dev 启动egg项目
  5. 下载egg-mysql插件,准备连接数据库
  6. 在config文件夹下,找到plugin.js文件,在 module.exports={ } 大括号中输入
    mysql:{
        enable:true,
        package:'egg-mysql',
    },
  1. 在config文件夹下,找到config.default.js文件,在 const userConfig={ } 大括号中输入
    // 连接数据库
    mysql:{
        // 单数据库信息配置
        client:{
            // host
            host:'localhost',
            // 端口号
            port:'3306',
            // 用户名
            user:'root',
            // 密码
            password:'root',
            // 数据库名
            database:'sql数据库名'
        },
        // 是否加载到 app 上,默认开启
        app: true,
        // 是否加载到 agent 上,默认关闭
        agent: false,
    },
    // 关闭代码检测
    security : {
        csrf: false
    },
  1. 在ap文件夹中写自己的代码逻辑
  2. 在app文件夹下,找到router.js文件,在这个文件中写接口 (以下代码是些常用接口,增,删,改,查)
    // 查找接口 * 查
    router.get('接口1',controller.文件夹1.函数1);
    // 新增接口 * 增
    router.post('接口2',controller.文件夹2.函数2);
    // 编辑接口 * 改
    router.put('接口3',controller.文件夹3.函数3);
    // 删除接口 * 删
    router.delete('接口4',controller.文件夹4.函数4);
  1. 在app文件夹下,新建文件夹 service (文件夹名必须为service) 用来和数据库连接
  2. 在service文件夹下,新建文件

文件夹1.js

    // 查找中需要条件就写不需要就不用写  xxx为条件参数
    async 函数1(xxx){
        return await this.app.mysql.query('select * from 表名 where(条件) xxx',[xxx]);
    }

文件夹2.js

    // t1,t2为参数 添加内容的项目名
    async 函数2(t1,t2){
        await this.app.mysql.query('insert into 表名 (t1,t2) value (?,?)',[t1,t2]);
    }

文件夹3.js

    // 通过id确定要编辑那个 q1,q2编辑的项目
    async 函数3(q2,q4,id){
        await this.app.mysql.query('update 表名 set q2=?,q4=? where(条件) id=?',[q2,q4,id]);
    }

文件夹4.js

    async 函数4(id){
        await this.app.mysql.query('delete from 表名 where(条件) id=?',[id]);
    }

在react中使用:

  • 在package.json文件中输入 "proxy":"egg启服务后生成的地址"
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值