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