节点MYSQL导出返回未定义"/>
节点MYSQL导出返回未定义
我正在创建一个与mysql集成的discord机器人。为了更方便,我为mysql数据库创建了一个中心文件(configsmysql.js),当命令需要时,它会向该文件发送查询请求,最后,它会返回处理后的值。但是当我尝试这样做的时候,在(命令的)控制台中,返回的值是未定义的,但是在mysql.js控制台中,显示的是正确的值。
MYSQL.js代码
const mysql = require("mysql");
const connection = mysql.createConnection({
host: config.URL,
user: config.dbUser,
password: config.dbPassword,
database: config.database
});
connection.connect(function(err) {
if (err) {
console.error("[MYSQL] Error on Connection: " + err.stack);
return;
}
console.log("[MYSQL] Connected with ID " + connection.threadId + "!");
});
function query(sql) {
connection.query(sql, function(error, result, fields) {
if (error) return error;
const analise = JSON.stringify(result[0]);
console.log(analise) //it's return the value correct
return analise
});
}
exports.connection = connection;
exports.query = query;
请求
const status1 = await mysql.query("SELECT `status` FROM `server_status`");
console.log(status1); //it's return undefined
谁能帮帮我?
回答如下:使用 承诺 对于 mysql
你不能用 return
在回调函数中。
const mysql = require('mysql');
const connection = mysql.createConnection({
host: config.URL,
user: config.dbUser,
password: config.dbPassword,
database: config.database,
});
connection.connect(function(err) {
if (err) {
console.error('[MYSQL] Error on Connection: ' + err.stack);
return;
}
console.log('[MYSQL] Connected with ID ' + connection.threadId + '!');
});
function query(sql) {
return new Promise(resolve => {
connection.query(sql, function(error, result, fields) {
if (error) return error;
const analise = JSON.stringify(result[0]);
console.log(analise); //it's return the value correct
resolve(analise);
});
});
}
exports.connection = connection;
exports.query = query;
const status1 = await mysql.query("SELECT `status` FROM `server_status`");
更多推荐
节点MYSQL导出返回未定义
发布评论