从函数中导出数据 [mysql, node.js, discord.js]
Posted
技术标签:
【中文标题】从函数中导出数据 [mysql, node.js, discord.js]【英文标题】:Exporting data from the function [mysql, node.js, discord.js] 【发布时间】:2021-08-14 14:05:07 【问题描述】:我在从函数中导出数据时遇到了这样的问题。我不知道它是否可以完成,但我在这里看不到任何其他解决方案。我的问题是我正在导出一个函数,我想导出这个函数的结果,所以在这种情况下我有 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
【问题讨论】:
【参考方案1】:您可以使用Callback function,您可以在其中以您想要的方式使用数据。通过将函数作为参数传递给sql
函数,您可以使用从数据库中获取的rows
作为参数调用该回调函数。
看看我为你编辑的代码:
你的 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);
);
试一试看看效果如何
【讨论】:
以上是关于从函数中导出数据 [mysql, node.js, discord.js]的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在也具有 IPC 挂钩的 node.js 文件中导出类?
node.js 中 module.exports= 函数的含义
使用 Node.js 从 AWS Lambda 函数连接到 MySql 数据库,没有连接回调