[英]How to use responses from MySQL in one function with Node.JS?
我在 Node.JS 中有这个代码:
var mysql= require('mysql');
function first(){
var connection = mysql.createConnection({
host : 'xxxxx',
user : 'admin',
password : 'xxxxx',
database : 'xxxxx',
port : 'xxxxx'
});
connection.connect();
connection.query('select*from test', function (error, results, fields) {
if (error) throw error;
return results[0].num;
});
}
function two(){
res = first();
console.log(res);
}
two();
我需要得到响应,但在控制台中显示未定义。 我该如何解决?
var mysql= require('mysql');
function first(){
return new Promise((resolve, reject) => {
var connection = mysql.createConnection({
host : 'xxxxx',
user : 'admin',
password : 'xxxxx',
database : 'xxxxx',
port : 'xxxxx'
});
connection.connect();
connection.query('select*from test', function (error, results, fields) {
if (error) reject(error);
else
resolve(results[0].num);
});
});
}
function two(){
first().then((result) =>{
console.log(res);
}).catch((error) =>{
console.log(error);
});
}
two();
上面的代码应该可以工作。 您的代码显示未定义,因为您的 sql 查询正在发送回调,并且您在操作完成之前正在控制台记录它。 我使用了 promise,但您也可以使用 asyc/await 功能。 Promise 是一种优雅的回调函数编码方式,当涉及太多回调时,它将帮助您避免回调地狱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.