共计 1010 个字符,预计需要花费 3 分钟才能阅读完成。
关于上篇文章 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())
})()
正文完