版权声明:转载请注明博客地址谢谢。 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()