2015-11-26 3 views
2

Я использую модуль https://github.com/brianc/node-postgrespg. По-видимому, я не могу использовать пароль Unicode для подключения к db. Из того же места psql с параметрами подключения идет нормально. С Node.js он дает ne password authentication failed for user. Когда я проверяю console.log(), я точно вижу, чего я ожидаю. Если я изменю пароль на ASCII как в db, так и в строке подключения, все будет хорошо. Но мне нужен старый Unicode пароль, который будет потреблено ...node-postgres Ошибка паролей UTF

Я попытался как https://github.com/brianc/node-postgres/wiki/Client

new pg.Client({...password: Código

и

conString = "postgres://...Có[email protected]"

Я знаю, что и ODBC (Driver={PostgreSQL UNICODE};) и JDBC (;Unicode=true) поддержка UTF в строке подключения. Я ничего не нашел на Node.js pg модуль поддержки UTF.

Пожалуйста, помогите.

Я увидел http://www.connectionstrings.com/postgresql/ и прочитал документацию по адресу https://github.com/brianc/node-postgres. Пожалуйста, помогите с вопросом.

Спасибо!

+0

бы https://github.com/bnoordhuis/node-iconv быть полезным? .. –

+0

@brianc могли бы вы посмотреть? .. –

ответ

2

Нашли ошибку в /lib/client.js: crypto.createHash('md5').update('утфUTF').digest('hex') дает:

a77b17c858d93bf7455211a629df45f8

, а правая md5 будет:

a=#select md5('утфutf'); 
       md5 
---------------------------------- 
6dbfa2a80226f7629e537268b0650898 
(1 row) 

Так crypto.createHash('md5').update('утфutf', 'utf-8').digest('hex') дает

6dbfa2a80226f7629e537268b0650898

После этого

кодирования по умолчанию, используемый модулем криптографической обычно 'двоичный' из another answer

Fixed мою проблему UTF пароль. Поэтому я создал PR - возможно, скоро это уже не будет вопросом.

https://github.com/brianc/node-postgres/pull/1178

Смежные вопросы