node 异步 mysql_node-mysql实现异步操作(下)

本文是关于如何封装node-mysql库以实现异步操作的下篇,通过创建Promise对象并在回调中使用resolve传递查询结果,使数据库操作更加符合常规编程习惯。文章提供了一个具体的async函数示例,展示如何在异步环境中获取并使用数据库查询数据。
摘要由CSDN通过智能技术生成

关于上篇文章node-mysql实现异步操作(上)介绍了如何进行异步操作,这篇文章就主要介绍如何封装node-mysql这个库的基本使用

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())

})()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值