eggjs mysql 不等于_造轮子 - EGGJS的MySQL操作库
最近学习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:
最近学习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: