Node.jsでデータベースに接続する(PostgreSQL)

Node.jsからPostgreSQLに接続して、SQL(SELECT文)でデータを抽出するバックエンドプログラムを作成してみます。
今回はJavaScriptフレームワークは使わずNode.jsだけでプログラムを作成します。
Windows PCに Node.js(v20.12.1) と PostgreSQL(v16.1) をインストールしておいてください。

モジュールのインストール

(1) npmコマンドでPostgreSQLのクライアントモジュールをインストールします。(今回はC:\Nodeの下に作成します)
 > npm install pg

PostgreSQLクライアントモジュールインストール

プログラム作成

(1) プログラムファイル:pgdbread.jsを作成します。node_modulesディレクトリとjsonファイルはクライアントモジュールインストール時に自動で生成されています。

Node.jsでPostgreSQLに接続

(2) 以下のようにプログラムソースを記述します。

 pgdbread.js

const pg = require('pg');

const pool = new pg.Pool({
  database: 'testDB',
  user: 'testuser1',
  password: 'testpass1',
  host: 'localhost',
  port: 5432,
});
  
pool.query('SELECT * FROM mortorcycle ORDER BY model_name ASC', (err, res) => {
  if (err) {
    console.log(err.stack);
  } else {
    console.log(res.rows);
  }
});

 1行:上の章でインストールしたモジュールからオブジェクトを作成します。
 3-9行:ユーザがデータベースへ接続するための場所(Pool)を作成します。データベースへの接続情報を入力します。
 11行:SELECT文を書きます。実行結果は res にセットされます。エラーが発生した場合は err にエラーメッセージがセットされます。
 12-16行:何らかのエラーが発生した場合はメッセージをコンソールに表示、エラーがなかった場合は検索結果のレコード(rows)を表示します。

テーブル
今回使用するテーブル:mortorcycle

動作確認

(1) nodeコマンドでプログラムを実行します。
 > node pgdbread.js

処理結果

 コンソールに処理結果が表示されました。
 エラーが発生した場合はエラーメッセージが表示されます。接続情報やSELECT文をわざと間違えてエラーメッセージが表示されることも確認してみましょう。

 実際のシステム開発では、このようなバックエンドプログラムで取り出したデータをフロントエンドフレームワークで加工してユーザに提供するという流れになります。