我正在尝试从数据库中获取数据,并将其用于应用程序的不同模块中。我的应用程序分为许多模块,我需要在需要它们的地方。

我的connectDB.js模块看起来像这样

var mysql = require('mysql');

var db = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "pw",
  database : "something"
});

db.connect(function(err){
  if(err){
    console.log('Error connecting to Db');
    return;
  }
  console.log('Database connected');
});

function select(query)
{
    db.query(query,function(err,rows){
        if(err) throw err;
        return rows;
    });
}

module.exports =
{
    select
}


我只是希望只需要这个模块,然后做类似的事情

db.select('SELECT * FROM users');


但是由于某种原因,返回值始终为“未定义”

在connectDB模块内发送查询可以按预期返回正确的数据。但是我不能使用我的函数来获取数据。

我的逻辑有什么问题吗?你能帮我做错什么吗?

最佳答案

对您的代码进行以下更改

module.exports =
{
    select: select
}


而且您忘记了回调函数

function select(query, callback)
{
    db.query(query,function(err,rows){
        if(err) throw err;
        return callback(rows);
    });
}


然后,您可以传递如下函数:

db.select('SELECT * FROM users', function(rows) {
    // Do stuff with rows
});

关于mysql - 使用其他模块/文件中的数据的nodejs mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33956187/

10-12 12:37
查看更多