egg-squel

    0.1.0 • Public • Published

    egg-squel

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

    安装

    $ npm i egg-squel --save

    使用

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

    配置

    // {app_root}/config/config.default.js
    exports.squel = {
      client: {
        // host
        host: 'localhost',
        // 端口号
        port: '3306',
        // 用户名
        user: 'root',
        // 密码
        password: 'root',
        // 数据库名
        database: 'shop',
        // 其他参数参照https://github.com/mysqljs/mysql
      },
      // 是否加载到 app 上,默认开启
      app: true,
      // 是否加载到 agent 上,默认关闭
      agent: false,
    };

    用法

    基本用法

    class UserService extends Service {
      async list() {
        const list = await this.app.squel.select().from('user').limit(10);
        const count = await this.app.squel.select().from('user').count();
        return { count, list };
      }
    }

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

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

    直接执行 sql 语句

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

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

    squel嵌套

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

    await this.app.squel.query(
      squel => squel.select()
        .from("students")
        .join(
            squel.select().field('score').from('results'),
            't'
        )
        .outer_join("expelled")
    );
     

    License

    MIT © Wang Sijie

    Install

    npm i egg-squel

    DownloadsWeekly Downloads

    1

    Version

    0.1.0

    License

    MIT

    Unpacked Size

    4.04 kB

    Total Files

    6

    Last publish

    Collaborators

    • wangsijie