mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
feat: add connection parameter nativeConnectionString (#2941)
Co-authored-by: Evgeniy Novikov <e.p.novikov@tinkoff.ru>
This commit is contained in:
parent
c38ecf3405
commit
dee3ae5cd6
@ -35,6 +35,7 @@ var Client = (module.exports = function (config) {
|
||||
// keep these on the object for legacy reasons
|
||||
// for the time being. TODO: deprecate all this jazz
|
||||
var cp = (this.connectionParameters = new ConnectionParameters(config))
|
||||
if (config.nativeConnectionString) cp.nativeConnectionString = config.nativeConnectionString
|
||||
this.user = cp.user
|
||||
|
||||
// "hiding" the password so it doesn't show up in stack traces
|
||||
@ -88,6 +89,7 @@ Client.prototype._connect = function (cb) {
|
||||
this._connecting = true
|
||||
|
||||
this.connectionParameters.getLibpqConnectionString(function (err, conString) {
|
||||
if (self.connectionParameters.nativeConnectionString) conString = self.connectionParameters.nativeConnectionString
|
||||
if (err) return cb(err)
|
||||
self.native.connect(conString, function (err) {
|
||||
if (err) {
|
||||
|
||||
50
packages/pg/test/native/native-connection-string-tests.js
Normal file
50
packages/pg/test/native/native-connection-string-tests.js
Normal file
@ -0,0 +1,50 @@
|
||||
'use strict'
|
||||
var helper = require('../test-helper')
|
||||
var Client = require('../../lib/native')
|
||||
const suite = new helper.Suite()
|
||||
|
||||
suite.test('respects nativeConnectionString in config', function (done) {
|
||||
const realPort = helper.config.port
|
||||
const nativeConnectionString = `host=${helper.config.host} port=${helper.config.port} dbname=${helper.config.database} user=${helper.config.user} password=${helper.config.password}`
|
||||
|
||||
// setting wrong port to make sure config is take from nativeConnectionString and not env
|
||||
helper.config.port = '90929'
|
||||
|
||||
var client = new Client({
|
||||
...helper.config,
|
||||
nativeConnectionString,
|
||||
})
|
||||
|
||||
client.connect(function (err) {
|
||||
assert(!err)
|
||||
client.query(
|
||||
'SELECT 1 as num',
|
||||
assert.calls(function (err, result) {
|
||||
assert(!err)
|
||||
assert.equal(result.rows[0].num, 1)
|
||||
assert.strictEqual(result.rowCount, 1)
|
||||
// restore post in case helper config will be reused
|
||||
helper.config.port = realPort
|
||||
client.end(done)
|
||||
})
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
suite.test('respects nativeConnectionString in config even when it is corrupted', function (done) {
|
||||
const nativeConnectionString = `foobar`
|
||||
|
||||
var client = new Client({
|
||||
nativeConnectionString,
|
||||
})
|
||||
|
||||
client.connect(function (err) {
|
||||
assert(err)
|
||||
assert.equal(
|
||||
err.message,
|
||||
'missing "=" after "foobar" in connection info string\n',
|
||||
'Connection error should have been thrown'
|
||||
)
|
||||
client.end(done)
|
||||
})
|
||||
})
|
||||
Loading…
x
Reference in New Issue
Block a user