Node.jsでPostgreSQLからデータを取得する方法

hebishima.shogo

はい、hebiです。

Node.jsでPostgreSQLからデータを取得する方法を記事にしたいと思います。

スポンサーリンク

前提

以下の記事で作成した環境でPostgreSQLからデータを取得したいと思います。

以下の環境を既にお持ちの場合は前提の記事は読み飛ばしてください。

  • PostgreSQLに接続できる状態
  • Node.jsにてHTTPサーバーを起動できる状態
あわせて読みたい
Amazon LinuxにPostgreSQLをインストールする方法
Amazon LinuxにPostgreSQLをインストールする方法
あわせて読みたい
EC2に構築したPostgreSQLに外から接続する方法
EC2に構築したPostgreSQLに外から接続する方法
あわせて読みたい
TypeScriptでWebAPIを作ってみた(Node.js + routing-controllers)
TypeScriptでWebAPIを作ってみた(Node.js + routing-controllers)

PostgreSQLライブラリインストール

Node.jsでPostgreSQLを操作するためには、まずpgというNode.js用のPostgreSQLライブラリをインストールします。また、TypeScriptで実装する場合は、@types/pgという型定義もインストールしましょう。

npm install pg @types/pg

PostgreSQLのDBからデータ取得

以下の手順で、PostgreSQLのDBからデータを取得することができます。

pgの定義

pgを定義し、接続するためのPool、QueryResultを利用できるようにします。

import { Pool, QueryResult } from 'pg';
接続設定

DBへ接続するためにPoolを使って接続の設定を行います。

const pool = new Pool({
    user: 'hebi',
    host: 'ip or hostname',
    database: 'testdb',
    password: 'password',
    port: 5432,
  });
データ取得

SELECT文を実行し、データを取得します。ここではt_customerテーブルからデータを取得しています。

const result: QueryResult = await client.query('SELECT * FROM t_customers');
console.log(result.rows);
完成形

上記の完成形が以下です。

import {
    JsonController,
    Get,
    Param,
    Res,
    Req
} from 'routing-controllers';

import { Pool, QueryResult } from 'pg';
const pool = new Pool({
    user: 'hebi',
    host: 'ip or hostname',
    database: 'testdb',
    password: 'password',
    port: 5432, // デフォルトのポート番号
  });

@JsonController("/users")
export class UserController {    
    @Get("/:id")
    async get(@Req() request: any, @Res() response: any){
        // PostgreSQLに接続
        const client = await pool.connect();
 
        try {
            // クエリを実行
            const result: QueryResult = await client.query('SELECT * FROM t_customers');
            console.log(result.rows);
            return result.rows;
        } catch (err) {
            console.error('Error executing query:', err);
        } finally {
            client.release();
        }
    }
}

データを取得できることができました!

最後に

PostgreSQLのDBからデータを取得することができましたでしょうか?

queryの引数にSQL文を指定するとその結果がjsonで返却されるようになっています。

そのままフロントへ返却することで、フロントで簡単に表示することができそうですね。

ぜひ、Node.js、PostgreSQLは無料で利用できるので、使ってみてください。

最後までお読みいただきありがとうございました(^^♪

スポンサーリンク
ABOUT ME
hebi
hebi
エンジニア
フルスタックエンジニアとして活躍中。
HTML5プロフェッショナル認定Level1、Level2所持者です。

未経験の方でも簡単にプログラミングを学べるようにと情報を発信しております。
記事URLをコピーしました