【问题标题】:Sending a SELECT sql variable array from one file to another in Nodejs在Nodejs中将SELECT sql变量数组从一个文件发送到另一个文件
【发布时间】:2018-07-19 00:09:54
【问题描述】:

我正在尝试将这个函数中的“行”模块导出到 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 循环”放入一个数组并将其发送过来,但每次我尝试对其进行控制台记录时,它都会返回“未定义”。有不同/正确的方法吗?

“另一个文件.js”

const mysqlcon = require("./mysql.js");
      if (args[0] == 'show') {
            mysqlcon.gameserverShow();
            console.log(mysqlcon.gameserverShow.rows);
      }

【问题讨论】:

  • 这样不行..你用的是哪个版本的nodejs?
  • 这是javascript中非常基本的东西,它是异步的,所以你应该首先理解这一点。虽然回答这个在堆栈上不太受鼓励的问题。
  • 嗯,我是一名学习者,我正在使用最新推荐的 nodejs 版本。我知道不鼓励在堆栈上回答问题,我尽量避免在这里并自己找到答案。但我撞到了一堵墙,我无法克服它。

标签: javascript mysql node.js discord.js


【解决方案1】:

你这样做是错误的。您应该首先阅读 javascript 函数调用、回调如何工作以及如何在 javascript 中处理异步任务。您必须使用回调或承诺异步处理它。当您在这里使用回调时,以下是基本代码。

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 做到这一点。这里有很多关于这个的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-22
    • 2014-02-22
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    相关资源
    最近更新 更多