egg的基本使用

1.首先在编辑器的终端里面,通过脚手架创建基于egg的项目:

mkdir egg-example && cd egg-example
npm init egg --type=simple
npm i

2.编写Controller:
如果你熟悉 Web 开发或 MVC,肯定猜到我们第一步需要编写的是 Controller 和 Router

//app/controller/user.js 文件路劲
const Controller = require('egg').Controller;
class UserController extends Controller {
    async info(params) {
        const ctx = this.ctx;
        const userId = ctx.params.id;
        const user = await ctx.service.user.find(userId);
        ctx.body = user;
    }
}
module.exports = UserController

配置路由的映射:

//app/router.js 文件路劲
module.exports = app => {
    const { router, controller } = app;
    router.get('/', controller.home.index);
    router.get('/user/:id', controller.user.info);
};

“/”,"/user"表示客户端访问里面的路径时,会去调用对应的Controller中的异步函数。

3.编写service层,egg官方建议我们在数据的处理层放在业务逻辑层。

const Service = require('egg').Service;
class UserService extends Service {
    async find(uid) {
        const post = await this.app.mysql.get('rf_common_menu', { id: uid });
        return { post };
    }
}
module.exports = UserService

当前端发送请求时会调用Controller中的方法,Controller中主要工作是接受用户的参数并进行处理,然后将处理好的参数发送给Service层,然后把Service的结果返回给用户。

接下来就是egg如何连接mysql数据库的基本步骤:
1.首先我们安装egg官方的egg-mysql插件来访问数据库 ,这个插件既可以访问普通的 MySQL 数据库,也可以访问基于 MySQL 协议的在线数据库服务。

npm i --save egg-mysql

2.然后创建一个文件用来存放开启插件配置

// config/plugin.js
exports.mysql = {
  enable: true,
  package: 'egg-mysql',
};

注意:这里的插件开启一定注意实在这个文件中进行配置,也不要忘记插件也要开启,不然就会有些 xxx is not undefined错误!
3.创建连接数据库的配置源:

exports.mysql = {
    // 单数据库信息配置
    client: {
        // host
        host: '127.0.0.1',
        // 端口号
        port: '3306',
        // 用户名
        user: 'root',
        // 密码
        password: 'admin123',
        // 数据库名
        database: 'rfshopping',
    },
    // 是否加载到 app 上,默认开启
    app: true,
    // 是否加载到 agent 上,默认关闭
    agent: false,
};

这个数据可以配置多个也可以动态配置。具体的实现可以去egg官方文档配置egg官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值