Fix #852, parse qs parameters for connection

This commit is contained in:
Tim Griesser 2015-06-01 07:39:57 -04:00
parent cf757a5647
commit 90105e064f
3 changed files with 28 additions and 2 deletions

View File

@ -1,6 +1,7 @@
'use strict';
var url = require('url');
var url = require('url')
var qs = require('qs')
module.exports = parseConnectionString;
@ -53,5 +54,17 @@ function connectionObject(parsed) {
}
}
}
if (parsed.query) {
var query = qs.parse(parsed.query)
for (var key in query) {
connection[key] = cast(query[key])
}
}
return connection;
}
}
function cast(val) {
if (val === 'true') return true
if (val === 'false') return false
return val
}

View File

@ -15,6 +15,7 @@
"minimist": "~1.1.0",
"mkdirp": "^0.5.0",
"pool2": "^1.1.0",
"qs": "^3.1.0",
"readable-stream": "^1.1.12",
"tildify": "~1.0.0",
"v8flags": "^2.0.2"

View File

@ -43,3 +43,15 @@ test('assume a path is mysql', function(t) {
}
})
})
test('#852, ssl param with query string', function(t) {
t.plan(1)
t.deepEqual(parseConnection("postgres://user:password@host:0000/database?ssl=true").connection, {
host: "host",
port: "0000",
user: "user",
password: "password",
database: "database",
ssl: true
})
})