无法通过子函数调用从数据库检索Nodejs MySQl数据

时间:2019-01-20 12:11:06

标签: javascript mysql node.js callback

我有两个名为login.jsdbMySql.js的文件。

login.js是将运行dbMySql.js的主文件,该文件是数据库连接的子模块。

我可以使用getQuery()dbMySql.js运行object.method call

getQuery()也可以正常工作,并且可以从数据库中检索数据。

如何将这些数据从数据库模块获取到我的主模块中?如何将res变量返回到login.js模块中的主函数

login.js 的代码:

var MySqlConnect = require('./dbMySql');

var app = express(); 
var dbConnect = MySqlConnect("localhost", "root", "root", "mydb");

dbConnect.getQuery("select * from `test`");
console.log(dbConnect.resD);

dbMySql.js 的代码:

function MySqlConnect(dbhost, dbuser, dbpassword, dbname) {
                var MySqlConnect = require('mysql');
                var con;
                this.dbhost = dbhost;
                this.dbuser = dbuser;
                this.dbpassword = dbpassword;
                this.dbname = dbname;
                this.resultData = 'Def';
                con = MySqlConnect.createConnection({
                    host: dbhost,
                    user: dbuser,
                    password: dbpassword,
                    database: dbname
                })
                con.connect(function (err) {
                    if (err) throw err;
                })

                function getQuery(query1) {
                    con.query(query1, function (err, res) {
                        if (err) throw err;

                    })
                    return {


                        resD: res

                    };

                }

                return {

                    getQuery: getQuery,

                };


            };

            module.exports = MySqlConnect;

我希望通过return方法或将成功运行的任何方法在Main模块中检索数据。

1 个答案:

答案 0 :(得分:0)

各种简单的答案我通过运行和努力发现了。

只需将res形式的db传递给回调函数参数,然后从主模块运行此功能