我正在使用node.js在Electron上创建一个小应用程序,并尝试输出我的应用程序所连接的端口以进行开发。
这是我的MySQL连接代码:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "xxx",
port: "3306"
});
和我的输出代码:
con.connect(function(err) {
if (err) {
return document.getElementById("connection").innerHTML = "<span
style='color:red;'>Not connected - Please contact Administrator</span>";
}
return document.getElementById("connection").innerHTML = "Connected on port " +
con.port;
});
我尝试用con.port输出它,但它只是说&#34; undefined&#34;。这里有什么正确的解决方案?
提前致谢。
答案 0 :(得分:2)
con.connect
函数实际上并没有返回任何内容。它是一个不返回任何内容的异步函数,如果出现错误或连接,则将该函数作为回调函数执行。要显示连接的端口,只需在外部构建选项对象,然后访问它。 con
这是一个mysql连接,没有公共端口属性。
var mysqlOptions = {
host: "localhost",
user: "root",
password: "xxx",
port: "3306"
};
var con = mysql.createConnection(mysqlOptions);
con.connect(function(err) {
if (err) {
document.getElementById("connection").innerHTML = "<span
style='color:red;'>Not connected - Please contact Administrator</span>";
return;
}
document.getElementById("connection").innerHTML = "Connected on port " +
mysqlOptions.port;
});
另外,正如@zerkms所述,您可以通过配置对象访问端口,该对象是mysql连接上的属性:
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "xxx",
port: "3306"
});
con.connect(function(err) {
if (err) {
document.getElementById("connection").innerHTML = "<span
style='color:red;'>Not connected - Please contact Administrator</span>";
return;
}
document.getElementById("connection").innerHTML = "Connected on port " +
con.config.port;
});
答案 1 :(得分:2)