javascript - 在 Nodejs 中将 SELECT sql 变量数组从一个文件发送到另一个文件

标签 javascript mysql node.js discord.js

我正在尝试将 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/

相关文章:

javascript - Jquery Ajax 向数据库中插入数据

javascript - Spritesheet 动画消失 p5.js

php - 使用 PHP/Doctrine 从 MySQL 迁移到 PostgreSQL

mysql - 优化mysql慢查询

node.js - 如何将数组从 Node 传递到 .js 文件 (pugJs)

javascript - 在 Canvas jquery html中绘制多边形

JavaScript Canvas 动画

MySQL 查询同一天多年来的每日平均值

javascript - JavaScript 中的原型(prototype)/类/公共(public)属性

javascript - 从大文件流式传输并创建数组