[英]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.