我应该如何抛出Mysql';s结果是另一个js文件

我应该如何抛出Mysql';s结果是另一个js文件,mysql,node.js,botkit,Mysql,Node.js,Botkit,这是我的第一个JS,所以这可能是一个非常新手的问题。 我想将SQLQUERY.js生成的sql结果传递给MAIN.js,但我不知道如何处理 SQLQUERY.js var mysql = require('mysql') var db = require('./db/db.js'); var connection = mysql.createConnection(db); var fs = require('fs') connection.connect(); const sql = fs.r

这是我的第一个JS,所以这可能是一个非常新手的问题。 我想将SQLQUERY.js生成的sql结果传递给MAIN.js,但我不知道如何处理

SQLQUERY.js

var mysql = require('mysql')
var db = require('./db/db.js');
var connection = mysql.createConnection(db);
var fs = require('fs')

connection.connect();
const sql = fs.readFileSync('./src/db/sql/selectTimeNotOnWork.sql').toString();
const sql2 = fs.readFileSync('./src/db/sql/selectTimeNotOnWorkCount.sql').toString();

var firstResult
var secondResult
connection.query(sql2,function (error, results, fields) {
if (error) throw error; 
 firstResult = results[0].count;
 return firstResult;
});

connection.query(sql,function (error, results, fields) {
if (error) throw error; 
 secondResult= results[0].name
 return secondResult;
});

exports ={firstResult,secondResult}
MAIN.JS

・・・・
require(./SQLQUERY.js)

controller.hears(['test'], botScope, async(bot, message) => {
    console.log(firstResult)
    console.log(secondResult)
    await bot.reply(message, firstResult);
});

执行
require()
时,可以要求整个导出对象,也可以使用解构

因此,在MAIN.JS中,您可以执行以下操作:

{firstResult,secondResult}=require('./SQLQUERY.js')


然后这两个值将在MAIN.js代码中可用。至少当我需要从导出而不是整个对象导入特定值时,我就是这样做的。我也不是专家,所以我不知道一个简单的
require('./SQLQUERY')
是否能使这些对象可用。

顺便说一句,一个更好的方法可能是在MYSQL.js文件中创建一个对象,然后在这个对象中创建您需要的方法。因此,在MAIN.js中,您可以编写类似于
const mysql=require('./mysql')
,然后使用此对象的方法,如
mysql.connect()
mysql.query()
,这样做可以更好地控制MAIN.js中mysql逻辑引发的错误或问题,它不会隐藏在另一个文件中。