goat-mysql

0.0.1 • Public • Published

goat-mysql

安装

npm install goat-mysql

使用

const MysqlClient =require('goat-mysql')
const mysql = new MysqlClient({
  {
    'client': {
      enable: true,
      host: '127.0.0.1',
      port: '3306',
      database: 'DBNAME',
      user: 'YOU-NAME',
      password: 'YOU-PASSWORD',
      pool: {
        min: 2,
        max: 10
      }
    }
  }
},app)

方法

  • table 表名
  • opts 条件
{
  columns:[],//返回的字段列 默认'*',[string,string]
  where:{
    key:'xxx',
    key2:['aaa','bbb']
  },
  order:[['aaa','DESC'],['bbb','ASC']] //排序规则。 字符串,数组
  limit:1,
  offset:0
}

query(sql,values)

直接运行sql命令

var results = await mysql.query('select * form app_user')
//参照:SqlString.format
var results = await mysql.query('select * form app_user')

count(table,where)

统计

var results = await mysql.query(app_user,{
  key:'xxx'
})

select(table,opts)

查询数据

var userInfo = {
  userID:'U23sdfasdfqwer234'
  ...
}
let results = await mysql.select('app_user', {
  columns:['userID'...] // columns:'*'
  where:{},
  offset:0,
  limit:10, // 生成:LIMIT 0,10
  order:[
    ['userID','ASC'] // 生成:ORDER BY userID ASC,...
    ...
    'userID' // 生成:ORDER BY userID
  ]
}})
console.log(results)
//返回结果数组

insert(table,rows)

插入数据

let results = await mysql.insert('app_user', userInfo)
console.log(results)

update(table, row, opts)

更新数据

delete(table,where)

删除数据

返回

{
  fieldCount: 0,
  affectedRows: 1, //影响行数
  insertId: 0,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}

事务操作

手动模式

let tran = await mysql.beginTransaction()
try{
  await tran.query('...')
  await tran.commit()
}catch(e){
  await tran.rollback()
}

自动模式:

 await mysql.beginTransaction(async (tran)=>{
  await tran.query('...')
  await tran.select('...')
  await tran.select('...')
  ...
})
 

Readme

Keywords

Package Sidebar

Install

npm i goat-mysql

Weekly Downloads

10

Version

0.0.1

License

CC BY-NC-ND 4.0

Last publish

Collaborators

  • vibo