适用于Koa2和Express进行连接
安装 mysql驱动
npm install mysql --save
创建mysql数据连接池,封装mysql请求
const mysql = require('mysql');
const pool = mysql.createPool({
host : '127.0.0.1',
user : 'root',
password : 'root',
database : 'mydatabase'
});
let query = function( sql, values ) {
// 返回一个 Promise
return new Promise(( resolve, reject ) => {
pool.getConnection(function(err, connection) { // 开启数据库
if (err) {
reject( err );
} else {
console.log('开启成功!');
pool.query(sql, values, ( err, rows) => {
if ( err ) {
reject(err);
} else {
resolve(rows);
}
// 结束会话
connection.release();
});
}
});
});
};
// 抛出query
module.exports = query;
Koa2使用
router.post('/login', async (ctx) => {
// 这里可以同步获取到rows
let rows = await query('select * from table_name');
ctx.body = {
code: 0,
msg: '请求成功',
data: rows
}
});
Express使用
router.post('/login', async (req, res) => {
// 原来做法
// query('select * from im_user', (err, rows) => {
// res.json({
// code: 0,
// msg: '请求成功',
// data: rows
// })
// })
// 现在
const rows = await query('select * from table_name');
res.json({
code: 0,
msg: '请求成功',
data: rows
});
});