Jika Anda yakin string koneksi Anda sudah terbentuk dengan baik seperti yang dijelaskan gnerkus, hal terakhir yang perlu Anda periksa adalah kata sandi Anda. Jika mengandung karakter non alfanumerik, mungkin itu yang menyebabkan masalah. Sepertinya Node.js atau cara kerja javascript sendiri yang menyebabkan hal ini (saya tidak begitu yakin karena pg-admin dapat terhubung menggunakan kata sandi awal saya dengan baik).
Kata sandi saya mengandung '+'
dan '/'
(diperoleh dengan membuat json panjang yang diisi dengan omong kosong dan kemudian hash menghasilkan string base64) dan saya yakin menerima kesalahan yang sama seperti milik Anda. Setelah saya menghapusnya (dari string koneksi saya dan memperbarui kata sandi database saya), itu berfungsi dengan baik.
Oh, dan ... '='
diterima sekalipun. Karena sepertinya masalahnya ada pada proses decoding url di sisi database. Ketika saya mengirim '+'
, saya pikir itu diganti dengan ' '
yang akan menyebabkan password salah. Dan '/'
menyebabkan url cacat yang merupakan akar penyebab kesalahan kami (yang mengatakan tidak ditemukan). Lihat contoh ini.
postgres://username:sdkadady88da8+8ahdajd/[email protected]/database
Saya yakin Anda akan menyadari bahwa ada tambahan '/'
yang akan menyebabkan kerusakan url yang salah. Jadi, protocol:// user:[email protected] / database
diubah menjadi protocol:// [malformed user:[email protected]] / [malformed database name] / [some gibberish]
karena '/'
tambahan itu .
Jika rekan Anda yang mengaksesnya menggunakan JSF dapat mengedit string koneksi mereka, saya sarankan untuk memperbarui kata sandi yang diterima oleh keduanya. Jika tidak bisa, maka Anda perlu membuat pengguna/peran lain dengan hak akses yang sama tetapi sandi berbeda yang dapat digunakan dari Node.js.
EDIT:Atau lebih baik lagi, menurut diskusi di sini, coba enkodekan bagian kata sandi dari string koneksi Anda. Mereka mengatakan itu berhasil. Saya tidak repot-repot mencobanya karena saya sudah mengubah kata sandi saya. Karena Anda masih mengalami masalah ini, Anda mungkin ingin mencobanya terlebih dahulu sebelum melakukan salah satu dari dua saran saya di atas.