pg promise UTF连接字符串



pg-promise不了解UTF密码吗?..我无法与它们一起使用。在Linux和OSX上尝试过,Postgres 9.3,9.5-似乎并非特定于版本。查看代码。PG-promise使用PG,它使用PG连接 - 串,该弦是基于背部PG构建的。找不到问题的根源。请帮助。

复制的代码:

MacBook-Air:js vao$ cat 2.js
var pgp = require("pg-promise")();
var cs = 'postgresql://utf:утф@127.0.0.1:5433/a';
var db = pgp(cs);
db.connect()
    .then(function (obj) {
        obj.done(); // success, release the connection;
    })
    .catch(function (error) {
        console.log("ERROR:", error.message || error);
    });
console.log(cs);

返回:

MacBook-Air:js vao$ node 2.js
postgresql://utf:утф@127.0.0.1:5433/a
ERROR: password authentication failed for user "utf"

使用psql的相同连接字符串:

MacBook-Air:js vao$ psql 'postgresql://utf:утф@127.0.0.1:5433/a'
psql (9.5.3)
Type "help" for help.
a=> q

尝试使用相同连接字符串故意尝试不良密码:

MacBook-Air:js vao$ psql 'postgresql://utf:утфWrongPassword@127.0.0.1:5433/a'
psql: FATAL:  password authentication failed for user "utf"
MacBook-Air:js vao$

作为pg-promise的作者,我至少希望在此处提供一些指导,而不是确切的答案,因为我从来没有亲自处理UTF密码。

pg-promise使用节点postgres,这又使用pg-connection-string来解析连接。如果有问题,那么它很可能是在PG连接 - 弦乐内部。

我建议尝试依赖于%的Unicode表示法。也许会起作用。也许不是,我从未尝试过。另外,以下问题从未回答:node.js postgres utf connect字符串,这也不放心。

对不起,我目前不能有更多的帮助。

最新更新