关于上篇文章node-mysql实现异步操作(上)介绍了如何进行异步操作,这篇文章就主要介绍如何封装node-mysql这个库的基本使用
mysql库下载
https://github.com/mysqljs/mysql
npm install mysql --save
基本使用
这是来自官方github上的例子
// 连接配置
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
// 连接mysql
connection.connect();
// 数据库操作
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
// 结束连接
connection.end();
例子中可以看出,对是数据库进行操作后,拿到的结果全在回调函数中使用,这很不符合平常的操作。而我们希望的是在回调函数中直接return结果,然后用一个变量直接来获取这个结果。
思路
利用 Promise对象 的 resolve参数 在回调函数中,我们拿到数据库操作的结果 results,把这个结果 resolve 出去,在 async函数 中可以把数据从 Promise对象 中拿出来。
代码实现
const mysql = require('mysql');
const find = async () => {
const connection = await mysql.createConnection({
host: '',
port: '',
user: '',
password: '',
database: '',
});
await connection.connect();
return new Promise((resolve, reject) => {
connection.query('SELECT * from tablename',
(error,results, fields) => {
resolve(results);
})
})
}
(getData = async () => {
console.log(await find())
})()
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。