Javascript 使用Nodejs从MySQL检索数据
我不熟悉javascript和nodeJS 我在尝试运行SQL查询以使用Nodejs检索数据时遇到一些问题 我创建了一个连接模块db.js,但无法从执行controller.js获得结果 如果要将resolveconnection交换到查询,我可以肯定地知道连接模块工作得很好,我可以从DB中检索数据 请帮我看看哪里出了问题 这里是db.jsJavascript 使用Nodejs从MySQL检索数据,javascript,mysql,node.js,Javascript,Mysql,Node.js,我不熟悉javascript和nodeJS 我在尝试运行SQL查询以使用Nodejs检索数据时遇到一些问题 我创建了一个连接模块db.js,但无法从执行controller.js获得结果 如果要将resolveconnection交换到查询,我可以肯定地知道连接模块工作得很好,我可以从DB中检索数据 请帮我看看哪里出了问题 这里是db.js var mysql = require('mysql2'); var Client = require('ssh2').Client; var ssh =
var mysql = require('mysql2');
var Client = require('ssh2').Client;
var ssh = new Client();
var db = new Promise(function (resolve, reject) {
ssh.on('ready', function () {
ssh.forwardOut(
'127.0.0.1',
12345,
'127.0.0.1',
3306,
function (err, stream) {
if (err) throw err;
let connection = mysql.createConnection({
host: '127.0.0.1',
user: 'username',
password: 'password',
database: 'test',
stream: stream
});
connection.connect(function (err) {
if (!err) {
resolve(connection)
} else {
reject(err);
}
});
});
}).connect({
host: 'hostname',
port: 22,
username: 'username',
password: 'password'
});
});
module.exports = db;
这是controller.js
var database = require('./db');
module.exports.getcats = (function(req, res) {
database().then(function (connection) {
connection.query("SELECT * FROM listUnit", function (error, results, fields) {
if (error) {
console.log(error);
return;
}
res.write(results);
});
});
});
如果您的代码与上面描述的一样,则在运行时不会出现任何可见的情况
node controller.js
这是因为控制器模块定义了一个导出函数,该函数打开数据库连接并进行查询,但它从未调用该函数
可能在实际应用程序中,您会在其他模块中使用导出的getcats函数,就像您使用了db函数一样。但是,如果您愿意,可以修改控制器,以便代码定义、导出和调用函数,并在从命令行运行查询时提供查询结果:
var database = require('./db');
// define the function
function getcats(req, res) {
database().then(function (connection) {
connection.query("SELECT * FROM listUnit", function (error, results, fields) {
if (error) {
console.log(error);
return;
}
res.write(results);
});
});
}
// export the function for use in other places
module.exports = getcats;
// invoke so it runs the query when you call "node controller.js"
getcats();
日志在说什么?结果的日志输出是什么?嗨,西蒙。运行命令node controller.js后,没有出现任何问题。但是,如果将查询放入db.js并运行它,查询结果将显示在控制台上。