Node.js Promise异步执行执行Mysql查询

在使用Node.js进行后端开发时,遇到Mysql联表查询导致的回调地狱问题。通过引入Promise尝试解决,初试代码出现Promise未正确监听mysql异步执行的情况。经学习调整后,理解到then()方法返回的新Promise负责监听异步操作,应当将异步函数放入其内部,从而实现异步控制。最终成功避免了回调地狱并得出正确执行的解决方案。
摘要由CSDN通过智能技术生成

最近在用Node.js编写一个后端逻辑,里面涉及到Mysql的联表查询(即用一个表的查询结果去查另一个表),这时就需要多层回调函数嵌套。那么问题就来了,多层回调函数嵌套就会产生“回调地狱”的问题,代码结构非常难看,而Promise和async就是为了解决“回调地狱”而产生的解决方案。我选择了Promise,但是在代码结构方面遇到了一些问题,最后经过大佬的指点解决了,特此记录。

首先要安装mysql模块(在已安装Mysql的前提下):

npm install -s mysql

然后执行(这里是我犯的错误,正确代码在后面):

/*
 注意这是一段错误的代码
*/
const mysql = require('mysql');
// 建立连接
let connection = mysql.createConnection({
  host: '127.0.0.1', // 数据库地址
  port: '3306', // 数据库端口
  user: 'root', // 用户名
  password: '', // 密码
  database: '' // 数据库名称
});
// Promise异步执行
let prom = Promise.resolve();
prom.then(function () {
  // 执行查询
  connection.query('SELECT * FROM users_table;', (e, result) => { // 这里users_table是我的表名,请读者自行替换
    console.log('Search complete!');
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值