2016-04-05 9 views
0

Ich habe mit Projekt mit Postgres DB beschäftigt, es verwendet NodeJs und 'Q' Framework. Ich möchte Postgres DB mit MySQL-Datenbank ersetzen, da ich ein totaler Neuling zu NodeJs bin, habe ich keine Idee, wie man sich vorstellt? Es wäre großartig, wenn Sie ein Beispiel für mysql connect und wenn möglich eine einfache Abfrage mit nodeJs und 'Q' teilen könnten.Verbindung zu MySQL async mit NodeJs und 'Q'

Antwort

0

Werfen Sie einen Blick auf this Antwort. Es scheint deine Frage zu beantworten.

Genommen genau von der die Antwort ein:

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(); 

Wenn Sie jedoch nicht mehrere Anrufe auf einmal vornehmen müssen, können Sie die Verwendung von Q.all überspringen und nur so etwas wie:

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

Danke, das ist, wie ich es am Ende tun endete:

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)); 
})