使用nodeJs和' Q'连接到MySQL异步。

时间:2016-04-05 15:29:00

标签: mysql node.js q

我使用Postgres DB处理项目,它使用nodeJs和' Q'框架。我想用mysql数据库替换postgres数据库,因为我是nodeJs的新手,我不知道怎么想?如果您可以共享一个mysql连接的示例,并且如果可能的话,使用nodeJs和Q'这将是一个很好的查询。

2 个答案:

答案 0 :(得分:0)

看看this回答。它似乎回答了你的问题。

完全取自答案:

var mysql      = require('mysql');
var Q = require('Q');

    var connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : ''
    });

    connection.connect();

    function doQuery1(){
        var defered = Q.defer();
        connection.query('SELECT 1 AS solution',defered.makeNodeResolver());
        return defered.promise;
    }

    function doQuery2(){
        var defered = Q.defer();
        connection.query('SELECT 2 AS solution',defered.makeNodeResolver());
        return defered.promise;
    }

    Q.all([doQuery1(),doQuery2()]).then(function(results){
        res.send(JSON.stringify(results[0][0][0].solution+results[1][0][0].solution));
    });

    connection.end();

但是,如果您不需要同时拨打多个电话,则可以跳过使用Q.all并执行以下操作:

return doQuery1().then(function(res){
     console.log(res);
     connection.end();
});

答案 1 :(得分:0)

谢谢,这就是我最终完成这项工作的方式:

var connection  = mysql.createConnection({host     : 'host',user  :'user', password :  'pass', database :  'db'});

var connect = Q.denodeify(connection.connect.bind(connection));
connect().then(function (values) {
    console.log('...connected to database');
    var query = Q.denodeify(connection.query.bind(connection));
})