我最近将我的应用程序从本地主机移到了 openshift。问题是当我尝试从 mysql 数据库中获取内容时会抛出错误。
/var/lib/openshift/55ace15350044671b700010b/app-root/runtime/repo/server.js:40
if (err) throw err;
^
Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:37:11)
at Object.onanswer [as oncomplete] (dns.js:124:16)
查询:
mysqlConnection.query('SELECT * FROM user WHERE email = ' + "'" + json["email"] + "'", function (err, rows, fields) {
if (err) throw err;
if (rows.length !== 0) {
if (bcrypt.compareSync(json["password"], decoder.write(rows[0].password))) {
ws.send("Password correct");
} else {
ws.send("Login password wrong");
}
}
else {
ws.send('Invalid email');
console.log("Invalid email || no rows");
}});
Mysql连接初始化:
var mysqlConnection = mysql.createConnection({ //connect to mysql database
host : 'mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/',
user : 'admin5x6cGHA',
password : '************',
database : 'dibsserver'
,debug : true
});
最佳答案
快速回答:替换这一行
host : 'mysql://$OPENSHIFT_MYSQL_DB_HOST:$OPENSHIFT_MYSQL_DB_PORT/',
通过
host : 'mysql://' + process.env.OPENSHIFT_MYSQL_DB_HOST + ':' + process.env.OPENSHIFT_MYSQL_DB_PORT + '/',
再长一点:
在 Node.JS 中,您可以使用 process.env supper global 来访问环境变量。
关于mysql - Openshift nodejs mysql 查询崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538631/