【发布时间】:2016-04-05 15:28:59
【问题描述】:
我正在处理使用 Postgres DB 的项目,它使用 nodeJs 和“Q”框架。我想用 mysql 数据库替换 postgres 数据库,因为我是 nodeJs 的新手,我不知道该怎么做?如果你能分享一个 mysql connect 的例子,如果可能的话,使用 nodeJs 和 'Q' 进行简单的查询,那就太好了。
【问题讨论】:
我正在处理使用 Postgres DB 的项目,它使用 nodeJs 和“Q”框架。我想用 mysql 数据库替换 postgres 数据库,因为我是 nodeJs 的新手,我不知道该怎么做?如果你能分享一个 mysql connect 的例子,如果可能的话,使用 nodeJs 和 'Q' 进行简单的查询,那就太好了。
【问题讨论】:
看看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();
});
【讨论】:
谢谢,这就是我最终的结果:
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));
})
【讨论】: