mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
ability to init connection with url instead of config object
This commit is contained in:
parent
aa975af83d
commit
d77fd0ee65
@ -2,13 +2,27 @@ var sys = require('sys');
|
||||
var net = require('net');
|
||||
var crypto = require('crypto');
|
||||
var EventEmitter = require('events').EventEmitter;
|
||||
var url = require('url');
|
||||
var Query = require(__dirname + '/query');
|
||||
var utils = require(__dirname + '/utils');
|
||||
|
||||
var Connection = require(__dirname + '/connection');
|
||||
|
||||
var parseConnectionString = function(str) {
|
||||
var result = url.parse(str);
|
||||
result.host = result.hostname;
|
||||
result.database = result.pathname.slice(1);
|
||||
var auth = (result.auth || ':').split(':');
|
||||
result.user = auth[0];
|
||||
result.password = auth[1];
|
||||
return result;
|
||||
};
|
||||
|
||||
var Client = function(config) {
|
||||
EventEmitter.call(this);
|
||||
if(typeof config === 'string') {
|
||||
config = parseConnectionString(config)
|
||||
}
|
||||
config = config || {};
|
||||
this.user = config.user;
|
||||
this.database = config.database;
|
||||
|
||||
21
test/unit/client/connection-string-tests.js
Normal file
21
test/unit/client/connection-string-tests.js
Normal file
@ -0,0 +1,21 @@
|
||||
require(__dirname + '/test-helper');
|
||||
|
||||
test("using connection string in client constructor", function() {
|
||||
var client = new Client("postgres://brian:pw@boom:381/lala");
|
||||
test("parses user", function() {
|
||||
assert.equal(client.user,'brian');
|
||||
})
|
||||
test("parses password", function() {
|
||||
assert.equal(client.password, 'pw');
|
||||
})
|
||||
test("parses host", function() {
|
||||
assert.equal(client.host, 'boom');
|
||||
})
|
||||
test('parses port', function() {
|
||||
assert.equal(client.port, 381)
|
||||
})
|
||||
test('parses database', function() {
|
||||
assert.equal(client.database, 'lala')
|
||||
})
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user