關於上篇文章 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()) })()