我正在尝试将 module.export “行”从此函数转移到 anotherfile.js
“mysql.js”
const gameserverShow = function () {
con.query(`SELECT * FROM gameservers`, (err, rows) => {
if (err) throw err;
return rows;
});
}
module.exports.gameserverShow = gameserverShow;
我尝试在数组中创建一个“foreach 循环”并将其发送出去,但每次我尝试使用 console.log 记录它时,它都会返回“未定义”。有不同/正确的方法吗?
“另一个文件.js”
const mysqlcon = require("./mysql.js");
if (args[0] == 'show') {
mysqlcon.gameserverShow();
console.log(mysqlcon.gameserverShow.rows);
}
最佳答案
你这样做的方式是错误的。您应该首先阅读 javascript 函数调用、回调的工作原理以及如何在 javascript 中处理异步任务。您必须使用回调或 Promise 异步处理它。当您在此处使用回调时,以下是基本代码。
const gameserverShow = function (callback) {
con.query(`SELECT * FROM gameservers`, (err, rows) => {
if (err) callback(err);
callback(null, rows);
});
}
module.exports.gameserverShow = gameserverShow;
在另一个文件中
const mysqlcon = require("./mysql.js");
if (args[0] == 'show') {
mysqlcon.gameserverShow((error, rows) => {
console.log(rows);
});
}
您可以搜索如何使用 Promise 来做到这一点。这里有很多关于此的问题。
关于javascript - 在 Nodejs 中将 SELECT sql 变量数组从一个文件发送到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48685213/