If you're sure your connection string is already well-formed like the one gnerkus described, the last thing you need to check is your password. If it contains non alphanumeric characters, maybe that's what causes the issue.
It seems either the Node.js or the way javascript works is itself causing this (I'm not really sure since pg-admin can connect using my initial password just fine).
My password contained '+' and '/' (I acquired by creating a long json filled with gibberish and then hashed it resulting in a base64 string) and I was facing same error as you. Once I got rid of those special characters (from my connection string and updating my database's password), it's working fine.
Oh, and ... '=' is accepted though. Because it seems the problem is with URL decoding process on the database side. When I sent '+', I think it was replaced by ' ' which caused an incorrect password. And the '/' was causing a malformed url which is the root cause of our error (which says not found).
Take a look at this example:
postgres://username:sdkadady88da8+8ahdajd/ashdi==@localhost/database
I'm sure you'll realize that there are extra '/' which will cause a badly formatted url. So, protocol:// user:pass@host / database changed into protocol:// [malformed user:pass@host] / [malformed database name] / [some gibberish] because of that extra '/'.
If your colleague who accessed it using JSF can edit their connection string, I suggest to update the password to one that can be accepted by both. If they can't, then you need to create another user/role with same access rights but a different password that can be used from Node.js.
EDIT:
Or better yet, according to discussion here, try encode the password part of your connection string. They say it works. I didn't bother to try it since I already changed my password. Since you still have this issue, you might want to try it first before doing one of my two suggestions above.