一个前端,爱跑步、爱吉他、爱做饭、爱生活、爱编程、爱南芳姑娘,爱我所爱。世间最温暖又无价的是阳光、空气与爱,愿它们能带你去更远的地方。

  • 文章
  • 心情
  • 照片墙
  • 留言板
  • 工具
  • 友链
  • biaoblog

    专注web开发技术分享

    Koa的上层框架egg.js的学习

    技术 255 2019-12-23 10:32

    1.前置依赖安装

    安装全局egg-init脚手架工具

    $ npm i egg-init -g
    

    初始化egg-init脚手架 tpye = simple 简易的安装方式

    $ egg-init --type=simple
    

    运行egg

    $ npm run dev
    

    2.控制器用来配置接口逻辑(目录app->controller->home.js)

    'use strict';
    const Controller = require('egg').Controller;
    class HomeController extends Controller {
      // 设置路径 并在router文件中配置路由
      async index() {
        const { ctx } = this;
        ctx.body = '前台api地址';
      }
      async list() {
        const { ctx } = this;
        ctx.body = 'hi, list';
      }
    }
    module.exports = HomeController;
    

    // RESTful 接口设计风格 简单和约束性

    // 约束性:请求方式 get(获取数据) post(新建资源) put(修改资源) delete(删除资源)


    3.配置根路由(目录app->router.js)

    'use strict';
    /**
     * @param {Egg.Application} app - egg application
     */
    // 配置路由 因为路由分为前台(default)和后台(admin) 并建立了独立的文件夹
    // 所以在这里使用require引用子路由即可
    module.exports = app => {
      const { router, controller } = app;
      // controller需要指定到文件下面的方法
      router.get('/', controller.home.index);
      // 调用这个方法并把app传递过去
      require('./router/default')(app);
    };
    

    配置子路由default(目录app->router->default.js):

    'use strict';
    // "use strict" 的目的是指定代码在严格条件下执行。
    module.exports = app => {
      const { router, controller } = app;
      router.get('/default/index', controller.default.home.index);
    };
    

    4.使用egg-mysql组件来连接mysql数据库

    $ npm i egg-mysql
    

    添加插件配置(目录server->config->plugin.js)

    这个配置完,也就说明egg.js可以支持mysql数据库的使用和连接了。

    exports.mysql = {
    enable: true,
    package: 'egg-mysql'
    }
    

    添加数据库连接配置

      // 放入mysql-simple配置 在https://www.npmjs.com/package/egg-mysql 能找到。
      // config 的写法是因为return 的是config的解构
      config.mysql = {
        // database configuration
        client: {
          // host
          host: 'localhost',
          // port
          port: '3306',
          // username
          user: 'root',
          // password
          password: '123456',
          // database
          database: 'react_blog',
        },
        // load into app, default is open
        app: true,
        // load into agent, default is close
        agent: false,
      };
    

    获取mySql数据库中的数据(目录app->controller->home.js)

    class HomeController extends Controller {
      // 设置路径 并在router文件中配置路由
      async index() {
        // 获取用户表的数据 使用this.app.mysql.get('表名字',{}) 来获取
        const result = await this.app.mysql.get('blog_content', {});
        console.log(result);
        this.ctx.body = result;
      }
    }
    

    5.下载集成PHPStudy、开启MySql和建立数据库表格字段。

    phpStudy下载地址:https://www.xp.cn

    开启mySql后下载phpStudy环境中的数据库工具(客户端)登入并建立库、表、字段(工具栏有图标可以点)。

    如果mySql无法开启,可以尝试切换端口3307或者设置默认 再不行百度吧(步骤比较复杂)。。

    未完待续..

    文章评论

    评论列表(0