【问题标题】:Node MYSQL exports returns undefined节点 MYSQL 导出返回未定义
【发布时间】:2020-08-17 03:03:33
【问题描述】:

我正在创建一个与 mysql 集成的不和谐机器人。为了方便起见,我为 mysql 数据库 (configs/mysql.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

谁能帮帮我?

【问题讨论】:

    标签: javascript mysql node.js discord.js


    【解决方案1】:

    promise 用于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`");
    

    【讨论】:

      猜你喜欢
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多