美文网首页
koa mysql async

koa mysql async

作者: SlowGO | 来源:发表于2018-12-26 14:52 被阅读11次

安装 mysql 模块:

npm install --save mysql

数据库工具 dbutil.js

const mysql = require("mysql")

const pool = mysql.createPool({
  host     :  '101.12.28.231',
  user     :  'root',
  password :  '123456',
  database :  'test'
})

let query = function( sql, values ) {

  return new Promise(( resolve, reject ) => {
    pool.getConnection(function(err, connection) {
      if (err) {
        resolve( err )
      } else {
        connection.query(sql, values, ( err, rows) => {

          if ( err ) {
            reject( err )
          } else {
            resolve( rows )
          }
          connection.release()
        })
      }
    })
  })

}

let createTable = function( sql ) {
  return query( sql, [] )
}


let findDataById = function( table,  id ) {
  let  _sql =  "SELECT * FROM ?? WHERE id = ? "
  return query( _sql, [ table, id ] )
}


let findDataByPage = function( table, keys, start, end ) {
  let  _sql =  "SELECT ?? FROM ??  LIMIT ? , ?"
  return query( _sql, [keys,  table,  start, end ] )
}


let insertData = function( table, values ) {
  let _sql = "INSERT INTO ?? SET ?"
  return query( _sql, [ table, values ] )
}


let updateData = function( table, values, id ) {
  let _sql = "UPDATE ?? SET ? WHERE id = ?"
  return query( _sql, [ table, values, id ] )
}


let deleteDataById = function( table, id ) {
  let _sql = "DELETE FROM ?? WHERE id = ?"
  return query( _sql, [ table, id ] )
}


let select = function( table, keys ) {
  let  _sql =  "SELECT ?? FROM ?? "
  return query( _sql, [ keys, table ] )
}

let count = function( table ) {
  let  _sql =  "SELECT COUNT(*) AS total_count FROM ?? "
  return query( _sql, [ table ] )
}

module.exports = {
  query,
  createTable,
  findDataById,
  findDataByPage,
  deleteDataById,
  insertData,
  updateData,
  select,
  count,
}

应用:

const { query,findDataById } = require('./dbutil')

...

router.get('/users', async (ctx, next) => {
    let dataList = await query( "SELECT * FROM user" )
    ctx.body = dataList;
})

router.get('/user', async (ctx, next) => {
  let id = ctx.query.id;
  console.log('id:',id);
    let user = await findDataById('user', id);
    ctx.body = user;
})

...

相关文章

网友评论

      本文标题:koa mysql async

      本文链接:https://www.haomeiwen.com/subject/hqphlqtx.html