从零一起学koa2(8)---连接MySQL和简单操作

版权声明:转载请注明博客地址谢谢。 https://blog.csdn.net/buppt/article/details/81268874

安装

先安装好mysql。然后引入node的mysql模块。

npm install --save mysql

使用

创建数据库会话

const mysql      = require('mysql')
const connection = mysql.createConnection({
  host     : '127.0.0.1',   // 数据库地址
  user     : 'root',    // 数据库用户
  password : '123456'   // 数据库密码
  database : 'database'  // 选中数据库
})
 
// 执行sql脚本对数据库进行读写 
connection.query('SELECT * FROM table',  (error, results, fields) => {
  if (error) throw error
  // connected! 
  
  // 结束会话
  connection.release() 
});

创建数据连接池

const mysql = require('mysql')

// 创建数据池
const pool  = mysql.createPool({
  host     : '127.0.0.1',   // 数据库地址
  user     : 'root',    // 数据库用户
  password : '123456'   // 数据库密码
  database : 'database'  // 选中数据库
})
 
// 在数据池中进行会话操作
pool.getConnection(function(err, connection) {
   
  connection.query('SELECT * FROM table',  (error, results, fields) => {
    
    // 结束会话
    connection.release();
 
    // 如果有错误就抛出
    if (error) throw error;
  })
})

封装使用

mysql模块的操作都是异步操作,每次操作的结果都是在回调函数中执行,使用的时候一般封装起来,提供一个接口,使用的时候用async/await,就可以用同步的写法去操作数据库。

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

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

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

async function getData( ) {
  let sql = 'SELECT * FROM table'
  let data = await query( sql )
  console.log(data)
}
getData()

猜你喜欢

转载自blog.csdn.net/buppt/article/details/81268874