gpt4 book ai didi

javascript - 通过 Node js应用程序连接到openshift中的mysql数据库时出错

转载 作者:行者123 更新时间:2023-11-29 04:42:30 24 4
gpt4 key购买 nike

我有一个带有 express 的 Node js 应用程序,它部署在 openshift 上。我通过 phpmyadmin 4.0 cartridge 创建了数据库。我能够连接到数据库,但是当我进行任何查询时,它会抛出错误 ECONNREFUSED。

我在浏览器上收到此错误响应,如下所示,

{"status":false,"error":{"code":"ECONNREFUSED","errno":"ECONNREFUSED","syscall":"connect","fatal":true}}

我的应用程序的代码是这样的,

       var connection =  mysql.createConnection({
host : process.env.OPENSHIFT_MYSQL_DB_HOST,
user : process.env.OPENSHIFT_MYSQL_DB_USERNAME,
password : process.env.OPENSHIFT_MYSQL_DB_PASSWORD,
database : process.env.OPENSHIFT_GEAR_NAME

});
connection.connect();


console.log("connected to login database");
var strQuery="insert into login values('"+req.body.uname+"','"+req.body.password+"','"+req.body.name+"','"+req.body.mobile+"');";
connection.query( strQuery, function(err){
if(err) {
res.json({
"status":false,
"error":err
});
res.end();
}else{

res.json({"status":true });
res.end();

}
});


connection.end();

我在这里找到了答案connect ECONNREFUSED - node js , sql

但我只能通过 phpmyadmin 4.0 访问我的数据库,我该如何解决?

最佳答案

编辑:下面的答案并不完全有效,因为重新启动应用程序解决了问题,但我希望下面的答案可以帮助遇到类似问题的其他人。

转到您的 Application控制台,单击 nodejs 应用程序,在那里添加 mysql 插件。完成后,您应该可以访问变量。我怀疑您为 mysql 创建了一个单独的应用程序,而不是将其添加到现有 Node 。

我能够通过在默认的 nodejs 应用程序盒中创建一个简单的快速路由来打印所有变量:

self.routes['/vars'] = function(req, res) {
var html = "<html><body>Host: " + process.env.OPENSHIFT_MYSQL_DB_HOST + "<br />";
html += "Port: " + process.env.OPENSHIFT_MYSQL_DB_PORT + "<br />";
html += "User: " + process.env.OPENSHIFT_MYSQL_DB_USERNAME + "<br />";
html += "Pass: " + process.env.OPENSHIFT_MYSQL_DB_PASSWORD + "<br />";
html += "Sock: " + process.env.OPENSHIFT_MYSQL_DB_SOCK + "<br />";
html += "URL: " + process.env.OPENSHIFT_MYSQL_DB_URL + "<br />";
html += "</body></html>"
res.send(html);
}

命中 http://<openshift_application_url>/vars返回(这对你来说会有所不同):

Host: 127.6.20.2
Port: 3306
User: adminPAkSHvw
Pass: d7DX9ATPh4uG
Sock: undefined
URL: mysql://adminPAkSHvw:d7DX9ATPh4uG@127.6.20.2:3306/

完整 server.jshere如果您想尝试复制/粘贴。如果您的 node+express 应用程序中存在 MySQL 墨盒,您将打印出变量,然后您的代码应该可以工作。

关于javascript - 通过 Node js应用程序连接到openshift中的mysql数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com