ホームページ > ウェブフロントエンド > jsチュートリアル > PostgreSQL を Node.js に接続して Sequelize する方法

PostgreSQL を Node.js に接続して Sequelize する方法

王林
リリース: 2024-08-02 09:45:41
オリジナル
1148 人が閲覧しました

How to connect PostgreSQL with Node.js and Sequelize

データベースを操作する場合、開発者は生のデータベース クエリを使用するか、複雑さを一部抽象化したライブラリを利用するかの選択に直面することがよくあります。 Sequelize はそのようなライブラリの 1 つで、PostgreSQL、MySQL、およびその他のリレーショナル データベースで動作する人気のある Node.js ORM (オブジェクト リレーショナル マッパー) です。このチュートリアルでは、Node.js で Sequelize を使用して PostgreSQL データベースに接続する方法を詳しく説明し、インストール、構成、モデルの作成、CRUD 操作の実行について説明します。

Sequelize のインストールと構成

Sequelize は、SQL クエリ上に抽象化レイヤーを提供することでデータベースの対話を簡素化します。 PostgreSQL に接続するために内部で pg ライブラリを利用します。 Sequelize を開始するには、次の手順に従ってください:

  1. プロジェクトを初期化する

    新しいプロジェクトを開始する場合は、Node.js プロジェクトを初期化して package.json ファイルを作成します。

    npm init -y
    
    ログイン後にコピー
  2. Sequelize と PostgreSQL ドライバーをインストールします

    PostgreSQL ドライバーのページと一緒に Sequelize をインストールします:

    npm install pg sequelize
    
    ログイン後にコピー
  3. データベース構成のセットアップ

    Node.js アプリケーションでは、まず PostgreSQL データベース アクセス変数を定義する必要があります。

    const user = '<postgres_user>';
    const host = 'localhost';
    const database = '<postgres_db_name>';
    const password = '<postgres_password>';
    const port = '<postgres_port>';
    
    ログイン後にコピー
  4. Sequelize をインポート

    Sequelize から必要なオブジェクトをインポートします:

    const { Sequelize, Model, DataTypes } = require('sequelize');
    
    ログイン後にコピー
  5. 初期化 Sequelize

    データベース構成を使用して新しい Sequelize インスタンスを作成します:

    const sequelize = new Sequelize(database, user, password, {
      host,
      port,
      dialect: 'postgres',
      logging: false
    });
    
    ログイン後にコピー

    ここでは、PostgreSQL を使用していることを示すために方言「postgres」を指定します。また、コンソール出力をクリーンに保つために SQL クエリ ログも無効にします。ただし、デバッグ中に有効にすることもできます。

Sequelize モデルの作成

Sequelize のモデルはデータベース内のテーブルを表します。各モデルは、対応するテーブルの構造を定義し、テーブルと対話するためのメソッドを提供します。

  1. モデルを定義する

    列名と年齢を含む cat という名前のテーブルがあるとします。次のように、このテーブルの Sequelize モデルを定義できます:

    class Cat extends Model {}
    
    Cat.init({
      name: {
        type: DataTypes.STRING,
        allowNull: false
      },
      age: {
        type: DataTypes.INTEGER,
        allowNull: false
      }
    }, {
      sequelize,
      modelName: 'cat',
      timestamps: false
    });
    
    ログイン後にコピー

    この例では:

- `Cat` extends Sequelize’s `Model` class.
- `init()` sets up the model with column definitions and configuration.
- We use `DataTypes.STRING` and `DataTypes.INTEGER` to define column types.
- `timestamps: false` disables automatic timestamp fields (`createdAt` and `updatedAt`).
ログイン後にコピー

データのクエリ

Sequelize は、データベースをクエリするためのさまざまなメソッドを提供します。 Sequelize を使用してデータを取得する方法は次のとおりです:

  1. すべてのレコードを取得

    cats テーブルからすべてのレコードを取得するには:

    const results = await Cat.findAll();
    console.log(results);
    
    ログイン後にコピー

    findAll() は、テーブル内の行を表すインスタンスの配列に解決される Promise を返します。

  2. 取得する列を制限する

    特定の列のみが必要な場合は、属性オプションを使用します。

    const results = await Cat.findAll({
      attributes: ['age']
    });
    console.log(results);
    
    ログイン後にコピー
  3. WHERE 句を追加します

    結果をフィルターするには、where オプションを使用します。たとえば、8 歳のすべての猫を検索するには:

    const results = await Cat.findAll({
      where: {
        age: 8
      }
    });
    console.log(results);
    
    ログイン後にコピー

    5 歳以上のすべての猫を検索するには:

    const { Op } = require('sequelize');
    
    const results = await Cat.findAll({
      where: {
        age: {
          [Op.gte]: 5
        }
      }
    });
    console.log(results);
    
    ログイン後にコピー
  4. 並べ替えと制限を適用する

    結果を並べ替えて、返される行数を制限するには:

    const results = await Cat.findAll({
      limit: 10,
      order: [
        ['name', 'DESC']
      ]
    });
    console.log(results);
    
    ログイン後にコピー

データの挿入

データベースに新しいレコードを挿入するには、create() メソッドを使用します。

const name = 'Garfield';
const age = 8;

const result = await Cat.create({ name, age });
console.log('New Cat:', result);
ログイン後にコピー

データの更新

既存のレコードを更新するには、update() メソッドを使用します。

await Cat.update(
  { age: 9 },
  {
    where: {
      name: 'Garfield'
    }
  }
);
ログイン後にコピー

すべての行を更新する場合 (この操作には注意してください)、where 句を省略します。

await Cat.update(
  { age: 10 }
);
ログイン後にコピー

結論

このチュートリアルでは、Sequelize を使用して PostgreSQL データベースと対話する方法を検討しました。まず Sequelize をインストールして構成し、データベース テーブルを表すモデルを作成しました。

Sequelize のメソッドを使用してデータをクエリ、挿入、更新する方法を学びました。この強力な ORM は、SQL クエリに対する高レベルの抽象化を提供することで、リレーショナル データベースの操作を簡素化します。

Sequelize とその機能をさらに詳しく調べるには、次のリソースを検討してください。

  • ドキュメントを続行する
  • PostgreSQL ドキュメント
  • Node.js ドキュメント

Sequelize を活用することで、データベースのやり取りを合理化し、堅牢なアプリケーションの構築にさらに集中できます。コーディングを楽しんでください!

以上がPostgreSQL を Node.js に接続して Sequelize する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート