ホームページ >ウェブフロントエンド >フロントエンドQ&A >nodejsはmysqlをカプセル化してページングを実装します

nodejsはmysqlをカプセル化してページングを実装します

王林
王林オリジナル
2023-05-28 13:40:38806ブラウズ

インターネットの急速な発展に伴い、開発される Web サイトやアプリケーションの数が増え、データ量もますます増大するため、データの処理と管理の重要性がますます高まっています。その中でも、ページングは​​非常に一般的なデータ クエリ方法であり、大量のデータを簡単に表示し、ユーザーに優れたユーザー エクスペリエンスを提供できます。開発では通常、MySQL データベースを使用してデータを保存しますが、この記事では、Node.js を使用して MySQL をカプセル化し、ページング クエリ機能を実装する方法を紹介します。

  1. データベース テーブルの作成

まず、必要なデータを保存するためのテーブルを MySQL に作成する必要があります。この記事では、id、name、age の 3 つのフィールドが含まれる「users」テーブルを例に挙げます。具体的なテーブル構造とデータは次のとおりです。

CREATE TABLE users (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT(11) NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO users (name, age) VALUES ('小明', 18);
INSERT INTO users (name, age) VALUES ('小红', 20);
INSERT INTO users (name, age) VALUES ('小华', 22);
INSERT INTO users (name, age) VALUES ('小张', 25);
INSERT INTO users (name, age) VALUES ('小李', 28);
INSERT INTO users (name, age) VALUES ('小刘', 30);
  1. MySQL と mysql モジュールのインストール

次に、MySQL データベースと対応する mysql モジュールをインストールする必要があります。次のコマンドを使用してインストールできます:

npm install mysql
  1. ページング クエリの実装

mysql モジュールを使用する前に、次のコードを使用して MySQL データベースに接続する必要があります。

const mysql = require('mysql');

const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'test'
});

connection.connect();

ここでは、接続するデータベース名を「test」に設定していますが、実際の状況に応じて変更する必要があります。

次に、指定されたページ数のデータをクエリするページング クエリ関数をカプセル化します。関数名は「queryByPage」で、渡されるパラメータは次のとおりです:

  • tableName: クエリ対象のデータ テーブルの名前
  • pageNum: クエリ対象のページ数
  • pageSize: 各ページに表示されるデータの数
  • callback: クエリ結果を受け取るために使用されるコールバック関数

関数の実装コードは次のとおりです。 ##

function queryByPage(tableName, pageNum, pageSize, callback) {
  const start = (pageNum - 1) * pageSize;
  const sql = `SELECT * FROM ${tableName} ORDER BY id DESC LIMIT ${start}, ${pageSize}`;
  connection.query(sql, (err, results) => {
    if (err) {
      return callback(err, null);
    }
    const countSql = `SELECT count(*) as count FROM ${tableName}`;
    connection.query(countSql, (err, count) => {
      if (err) {
        return callback(err, null);
      }
      const totalCount = count[0].count;
      const totalPage = Math.ceil(totalCount / pageSize);
      return callback(null, {
        pageNum,
        pageSize,
        totalCount,
        totalPage,
        data: results
      });
    });
  });
}

上記のコードは、次のいくつかの関数を実装します。

    渡されたページ数と各ページに表示されるデータの数に基づいてクエリ データの開始位置を計算します
  • MySQL クエリ ステートメントを実行してページング クエリを実装し、クエリ結果を取得します。
  • MySQL クエリ ステートメントを実行して、データの合計量を取得します。
  • 合計に基づいて合計ページ数を計算します。データ量と各ページに表示されるデータ数
  • クエリ結果とページングのページング情報はコールバック用のオブジェクトにカプセル化されます
    ページング クエリ関数を呼び出します
最後に、Node.js アプリケーションでカプセル化されたページング クエリ関数を呼び出し、必要に応じてクエリ結果を表示できます。

queryByPage('users', 1, 2, (err, result) => {
  if (err) {
    console.error(err.message);
    return;
  }
  console.log(result);
});

上記のコードは、「users」テーブルのデータの最初のページをクエリし、各ページに 2 つのレコードを表示し、クエリ結果をコンソールに出力します。

    概要
この記事では、Node.js を使用して MySQL をカプセル化し、ページング クエリ機能を実装する方法を紹介します。データベーステーブルを作成し、mysql モジュールをインストールし、クエリ関数をカプセル化することで、指定したページ数のデータを簡単にクエリしてアプリケーションに表示できます。もちろん、実際のアプリケーションにおいても、実情に合わせてコードを改良し、エラー処理や例外処理を行う必要があります。

以上がnodejsはmysqlをカプセル化してページングを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。