不要怂,就是干,撸起袖子干!

Commit 33ba2927 by Sascha Depold

catch errors when connecting to non default mysql server fails

1 parent 2b635550
Showing with 30 additions and 30 deletions
...@@ -167,39 +167,39 @@ Sequelize.prototype = { ...@@ -167,39 +167,39 @@ Sequelize.prototype = {
query: function(queryString, callback) { query: function(queryString, callback) {
var fields = [], var fields = [],
values = [], values = [],
self = this self = this,
client = require(__dirname + "/../nodejs-mysql-native/index").createTCPClient(this.config.host, this.config.port)
require(__dirname + "/../nodejs-mysql-native/index").createTCPClient(this.config.host, this.config.port, function(err, connection) {
if(err) callback(null, null, { message: "Unable to establish a connection to " + [self.config.host, self.config.port].join(":") }) client.connection.on('error', function() {
else { callback(null, null, { message: "Unable to establish a connection to " + [self.config.host, self.config.port].join(":") })
connection.auto_prepare = true })
connection
.auth(self.config.database, self.config.username, self.config.password) client.auto_prepare = true
.addListener("error", function(err) { callback(null, null, err) }) client
.addListener('authorized', function() { .auth(self.config.database, self.config.username, self.config.password)
if(!self.options.disableLogging) .on('error', function(err) { callback(null, null, err) })
Sequelize.Helper.log("Executing the query: " + queryString) .on('authorized', function() {
if(!self.options.disableLogging)
Sequelize.Helper.log("Executing the query: " + queryString)
connection client
.query(queryString) .query(queryString)
.on('row', function(r){ values.push(r) }) .on('row', function(r){ values.push(r) })
.on('field', function(f){ fields.push(f)}) .on('field', function(f){ fields.push(f)})
.on('end', function(stats) { .on('end', function(stats) {
if(callback) { if(callback) {
var result = [] var result = []
values.forEach(function(valueArray) { values.forEach(function(valueArray) {
var mapping = {} var mapping = {}
for(var i = 0; i < fields.length; i++) for(var i = 0; i < fields.length; i++)
mapping[fields[i].name] = valueArray[i] mapping[fields[i].name] = valueArray[i]
result.push(mapping) result.push(mapping)
})
if(callback) callback(result, stats)
}
}) })
connection.close() if(callback) callback(result, stats)
}
}) })
} client.close()
}) })
} }
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!