MySQL NodeJS Openshift服务器 - 对数据库的查询似乎无法正常工作

时间:2016-01-12 10:29:22

标签: mysql node.js openshift

我在Openshift中有一个带有MySQL盒式磁带的nodejs服务器。它似乎构建没有问题,但是,当我尝试查询数据库时,它似乎什么都不做......它甚至没有给我一个错误,它只是什么也没做。这是我的相关代码。

var mysql = require('mysql');

var connection = mysql.createConnection({
    host: 'mysql://' + process.env.OPENSHIFT_MYSQL_DB_HOST + ':' + process.env.OPENSHIFT_MYSQL_DB_PORT + '/',
    user: process.env.OPENSHIFT_MYSQL_DB_USERNAME,
    password: process.env.OPENSHIFT_MYSQL_DB_PASSWORD,
    database: 'revision',
    multipleStatements: true,
    debug : true
});

并在适当的路线:

var stuff = 'abc';
connection.query('SELECT 1', function(err, rows, fields){
    if (err) {
        stuff = "ghi";
    } else {
        stuff = "def";
    }
});
stuff = stuff + "done";
res.send(JSON.stringify(stuff));

它应该返回“defdone”或“ghidone”,但它总是返回“abcdone”......就好像它甚至没有进入函数内部。我已经尝试了几种方法来做到这一点,但都没有用。我已经转储了连接变量,它似乎就是这个意思。

我使用SELECT 1作为查询字符串的原因是验证它不是数据库错误。

1 个答案:

答案 0 :(得分:1)

似乎“问题”与节点的异步性质有关,因为最终的2条指令在查询完成之前执行。此外,配置似乎总是错误的,因为我只有整个网址的“主机”属性。我把它改为2个属性 - “主机和”端口“,给它们适当的变量(process.env.OPENSHIFT_MYSQL_DB_HOST和process.env.OPENSHIFT_MYSQL_DB_PORT)。它现在正在工作!