eggjs mysql 不等于_造轮子 - EGGJS的MySQL操作库

博主分享了在学习eggjs过程中不满意官方MySQL库的体验,于是自己创建了一个名为@hyoga/egg-mysql的轮子,模仿THINKPHP的数据库操作方式,提供链式操作实现语义化的数据库查询。例如,查找用户表中id为1的用户名字只需一行代码。项目已开源,欢迎star和提出issue。
摘要由CSDN通过智能技术生成

最近学习eggjs,学习过程中使用官方推荐的MySQL库,感觉官方库不太好用,基础的CURD没问题。但是复杂点的操作就不行了,虽然官方还有一个egg-sequelize,但是这个这并不妨碍我造轮子。下面介绍一下我的这个轮子。

介绍

这个轮子其实是很早以前就造好的,主要参考THINKPHP的数据库操作方式。将设置表名(table)、设置查询字段(field)、联表(join)等操作进行链式操作,给人一种语义化操作数据库的感觉。

比如从用户表查找id为1的用户的名字,则只需要这样操作:

mysql.table('user').field('name').where({ id: 1 }).find();

// SELECT name FROM user where id=1 limit 1

是不是很简单呢?

造的轮子名字叫@hyoga/egg-mysql,所以只需要:

安装

npm i @hyoga/egg-mysql --save

配置

// {app_root}/config/config.default.js

exports.mysql = {

mysql: {

client: {

host: '127.0.0.1',

port: '3306',

user: 'root',

password: '',

database: 'db',

},

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

app: true,

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

agent: false,

},

};

使用

// {app_root}/config/plugin.js

exports.mysql = {

enable: true,

package: '@hyoga/egg-mysql',

};

// {app_root}/app/service/user.js

export default class User extends Service {

private table = 'user';

public async list() {

// sql = SELECT * FROM user WHERE status = 1

return this.app.mysql.table(this.table).where({ status: 1 }).select();

}

}

这时候mysql就挂载到egg的app对象了,接下来就可以到处链式操作了。

推广

@hyoga/egg-mysql依赖于@hyoga/mysql,项目地址如下,欢迎star,欢迎issue:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值