项目作者: wangsijie

项目描述 :
MySQL plugin for egg using squel
高级语言: JavaScript
项目地址: git://github.com/wangsijie/egg-squel.git
创建时间: 2018-10-11T02:52:21Z
项目社区:https://github.com/wangsijie/egg-squel

开源协议:MIT License

下载


egg-squel

eggjs的MySQL插件,与官方的egg-mysql不同,本插件基于squel构造sql语句,具有更强的拓展性,避免裸写sql语句

安装

  1. $ npm i egg-squel --save

使用

  1. // {app_root}/config/plugin.js
  2. exports.squel = {
  3. enable: true,
  4. package: 'egg-squel',
  5. };

配置

  1. // {app_root}/config/config.default.js
  2. exports.squel = {
  3. client: {
  4. // host
  5. host: 'localhost',
  6. // 端口号
  7. port: '3306',
  8. // 用户名
  9. user: 'root',
  10. // 密码
  11. password: 'root',
  12. // 数据库名
  13. database: 'shop',
  14. // 其他参数参照https://github.com/mysqljs/mysql
  15. },
  16. // 是否加载到 app 上,默认开启
  17. app: true,
  18. // 是否加载到 agent 上,默认关闭
  19. agent: false,
  20. };

用法

基本用法

  1. class UserService extends Service {
  2. async list() {
  3. const list = await this.app.squel.select().from('user').limit(10);
  4. const count = await this.app.squel.select().from('user').count();
  5. return { count, list };
  6. }
  7. }

支持select, insert, update, delete四大类操作,更多用法参照squel文档

其中count为本插件拓展的用法,用于方便计数

直接执行 sql 语句

有时候还是需要直接执行sql语句

  1. await this.app.squel.query('select now() as currentTime');

squel嵌套

query函数可以直接拿到squel实例

  1. await this.app.squel.query(
  2. squel => squel.select()
  3. .from("students")
  4. .join(
  5. squel.select().field('score').from('results'),
  6. 't'
  7. )
  8. .outer_join("expelled")
  9. );

License

MIT © Wang Sijie