eggjs mysql 不等于_egg.js中Egg-mysql使用

本文介绍了如何在Egg框架中使用egg-mysql插件进行数据库操作,包括安装、配置、基本CRUD操作以及多环境支持。重点讲解了如何在Controller和Service中实现增删改查,以及注意事项如SQL条件限制。
摘要由CSDN通过智能技术生成

体验

我以为会有laravel那种ORM支持呢,看来是想多了,不过官方提供了一个egg-sequelize插件,还是很不错的,下面是egg-mysql的学习笔记

安装

需要使用egg提供的一个egg-mysql插件来进行数据库交互,所以

首先安装egg-mysql npm包,执行命令:

$ npm i --save egg-mysql

然后在项目插件配置文件中开启插件

// config/plugin.jsexports.mysql = {

enable: true,// 开启 package: 'egg-mysql', // 对应哪个包};

配置

接下来就需要配置数据库账号等信息了,egg提供一种多环境配置,就是咱即可以配置自己本地的数据库信息,也可以配置测试环境、线上环境数据库信息,只需要再config下创建config.${env}.js文件即可,比如config.location.js为我本地配置,config.prod.js为线上环境,然后在config/env文件内指定运行环境即可。

当然也可以默认都用一个配置。我用config/config.default.js来作为默认配置文件。

// mysqlconfig.mysql = {

client: {

// host host: 'localhost',

// 端口号 port: '3306',

// 用户名 user: 'root',

// 密码 password: 'root',

// 数据库名 database: 'test',

},

// 是否加载到 app 上,默认开启 app: true,

// 是否加载到 agent 上,默认关闭 agent: false,

}

使用

如何在项目中增删改查呢?你可以直接在controller里边直接这样用,不过建议自己写一个service来过度下业务

get 查询单条信息

let user = await this.app.mysql.get('users', { id: 1 });

2. select 查询多条数据

let users= await this.app.mysql.select('users');

3. select 有条件的查询,蛋疼的是,他的条件只支持=和in,真鸡儿,想自定义还需要用query

let users = await this.app.mysql.select('users', {

where: {

name: ['test', 'test1'], // 相当于 in },

order: [['created_at', 'desc'], ['state', 'desc']]

});

4. query 直接执行sql语句,为了防止sql注入,采用这种每个?匹配一个元素的方式

let users = await this.app.mysql.query('select * from users where id > ? and state <> ? and phone is not null', [100, 0]);

5. insert 插入数据

let res = await this.app.mysql.insert('users', {

name: 'egg',

phone: 'xxxxxx'

});

let id = res.insertId; // 得到新插入的数据主键

6. update 更新数据

// 更新id=1的用户信息let res = await this.app.mysql.update('users', {

name: 'egg',

phone: 'xxxxxx'

}, {

id: 1,

});

7. delete 删除数据

let res = await this.app.mysql.delete('users', {

id: 1,

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值