mysql模块
mysql模块是node操作MySQL的引擎,可以在nodejs环境下对MySQL数据库进行建表,增,删,改,查等操作。
创建数据库会话
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| const mysql = require('mysql') const connection = mysql.createConnection({ host:'127.0.0.1', user:'root', password:'guilong', database:'koatest' })
connection.query('SELECT * FROM my_table',(error,results,fields)=>{ if(error) throw error
connection.release() })
|
创建数据连接池
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| const mysql = require('mysql')
const pool = mysql.createPool({ host:'127.0.0.1', user:'root', password:'123456', database:'koatest' })
pool.getConnection(function(err,connection){ connection.query('SELECT * FROM my_table',(error,results,fields)=>{ connection.release() if(error) throw error }) })
|
async/await封装使用mysql
由于mysql模块的操作都是异步操作,每次操作的结果都是回调函数中执行,现在有了async/await,就可以用同步的写法去操作数据库
Promise封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| const mysql = require('mysql')
const pool = mysql.createPool({ host:'127.0.0.1', user:'root', password:'123456', database:'koatest' })
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() }) } }) }) }
module.exports = {query}
|
async/await使用
1 2 3 4 5 6 7 8 9 10 11 12 13
| const {query} = require('./asyncsql') async function selectAllData(){ let sql = 'SELECT * FROM my_table' let dataList = await query(sql) return dataList }
async function getData(){ let dataList =await selectAllData() console.log(dataList) }
getData()
|
项目建表初始化
https://chenshenhai.github.io/koa2-note//note/mysql/init.html
评论加载中