关于上篇文章 node-mysql实现异步操做(上)介绍了如何进行异步操做,这篇文章就主要介绍如何封装node-mysql这个库的基本使用
https://github.com/mysqljs/mysqlnode
npm install mysql --save
这是来自官方github上的例子mysql
// 链接配置 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结果,而后用一个变量直接来获取这个结果。git
利用 Promise对象 的 resolve参数 在回调函数中,咱们拿到数据库操做的结果 results,把这个结果 resolve 出去,在 async函数 中能够把数据从 Promise对象 中拿出来。github
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()) })()