繁体   English   中英

从 function [mysql, node.js, discord.js] 导出数据

[英]Exporting data from the function [mysql, node.js, discord.js]

我在从函数导出数据时遇到了这样的问题。 我不知道它是否可以完成,但我在这里看不到任何其他解决方案。 我的问题是我正在导出一个 function,我想导出这个 function 的结果,所以在这种情况下我有 MYSQL。 我无法将rows添加到module.exports = {sql, rows}因为我收到rows未定义的消息。 我正在寻求帮助或其他解决方案。

//------------------------------
📁 index.js
//------------------------------

const mysql = require('mysql')
const db = require('./database')

var con = mysql.createConnection({
        host: db.host,
        user: db.user,
        password: db.password,
        database: db.database
})

con.connect(err => {
        if(err) console.log(err)
})

function sql(sql){
        con.query(sql, (err, rows) => {
            if(err) console.log(err)

        })
}

module.exports = { sql, rows }

// con.end()

//------------------------------
📁 Command file
//------------------------------

const sql = require('./../config/test')

sql.sql("SELECT * FROM `servers`")
console.log(sql.rows)

//------------------------------
📁 Console error
//------------------------------
(node:30132) UnhandledPromiseRejectionWarning: ReferenceError: rows is not defined

您可以使用回调 function ,您可以在其中使用所需的数据。 By passing a function as a parameter to the sql function, you can invoke that callback function with the rows fetched from the database as a parameter.

看看我为你编辑的代码:

你的 index.js

/* Skipped all code above that isn't important for this example */

function sql(query, callback){
    con.query(query, (err, rows) => {
        if(err) console.log(err);

        callback(rows);
    });
}

module.exports = {sql}

你的命令文件

const queryHandler = require('./../config/test');

// Call the sql function and pass a callback as the 2nd parameter
queryHandler.sql("SELECT * FROM `servers`", (rows) => {
    // Do whatever you want with the rows
    console.log(rows);
});

试一试,看看效果如何

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM