ふーむ、私はMySQLユーザーでPostgreSQLには明るくないので
私と一緒に公式サイトを見に行きましょうか。
pg - npm
⭐ Documentation ⭐にリンク貼ってありますね。
なんかのっけから質問文の使い方とは違うような気がしますね。
コネクション情報を使うのはトップページには記載されてないようなので、
Features -> Connecting -> Programmatic
この辺に良い感じのサンプルコードが見つかりました。
コネクションとコネクションプールの使い方を両方紹介している欲張り設定なので片方だけ使いましょうかね。
js
1const { Client } = require('pg');
2
3const client = new Client({
4 user: 'ユーザ',
5 host: 'localhost',
6 database: 'DB名',
7 password: 'パスワード',
8 port: 5432,
9});
10client.connect();
11client.query('SELECT NOW()', (err, res) => {
12 if (err) {
13 console.error(err);
14 } else {
15 console.log(res);
16 }
17 client.end();
18});
更に下に質問文に似たアプローチのものも見つけました。
Connection URI
js
1const { Client } = require('pg');
2
3// これで動作するかは知らんけど
4const conn = "tcp:[ユーザ]:[パスワード]@localhost:5432/[DB名]";
5
6// 正規サンプルだとこうらしい
7// const connectionString = 'postgresql://dbuser:secretpassword@database.server.com:3211/mydb'
8
9const client = new Client({
10 connectionString: conn,
11});
12client.connect();
13client.query('SELECT NOW()', (err, res) => {
14 if (err) {
15 console.error(err);
16 } else {
17 console.log(res);
18 }
19 client.end();
20});
startとendは出力されますが、中身のコンソールログが表示されません。
接続情報の記載が誤っているのでしょうか。
多分"tcp:[ユーザ]:[パスワード]@localhost:5432/[DB名]"
がダメなんでしょうね。
私はmysqlで始まる文字列はよく見てますので、
きっとpostgresqlだのDBの種類で始まるものが正しいのでしょうね。
なのでこの表記がマズイから修正すればすぐ終わると思いますが、
公式サイトのドキュメント見る限り古いバージョンの事記載されてないんですよね。
質問文と見比べた感じ全然使い方違うし。
Node.jsの世界は最新安定版にドンドン乗り換えていくのを推奨していますから、
これを良い機会に新しいバージョンにしてみてはどうでしょう?
どこぞの技術者が走り書きで書いた記事より、
公式のドキュメントの説得力の方が段違いです。
だから私もせっせと公式サイトを探してこういう回答文こしらえてるわけですからね。