MySQL plugin for egg using squel
eggjs的MySQL插件,与官方的egg-mysql不同,本插件基于squel构造sql语句,具有更强的拓展性,避免裸写sql语句
$ npm i egg-squel --save
// {app_root}/config/plugin.jsexports.squel = {enable: true,package: 'egg-squel',};
// {app_root}/config/config.default.jsexports.squel = {client: {// hosthost: '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语句
await this.app.squel.query('select now() as currentTime');
query函数可以直接拿到squel实例
await this.app.squel.query(squel => squel.select().from("students").join(squel.select().field('score').from('results'),'t').outer_join("expelled"));
MIT © Wang Sijie