Node.js を使用して SQL ストアド プロシージャを呼び出し、結果を取得する方法

PHPz
リリース: 2023-04-07 10:09:17
オリジナル
1193 人が閲覧しました

Node.js は、サーバーサイドの JavaScript ランタイム環境として、非常に人気のあるテクノロジーになっています。 Node.js 開発者にとって、データベース ストアド プロシージャの呼び出しは、複雑なデータベース クエリを実行する効果的な方法です。しかし、他のプログラミング言語と比較して、Node.js はどのようにして SQL ストアド プロシージャを正しく呼び出すのでしょうか?

この記事では、Node.js を使用して SQL ストアド プロシージャを呼び出し、結果を取得する方法を紹介します。

データベースへの接続

Node.js を使用してデータベースに接続する前に、対応する Node.js データベース ドライバーをインストールする必要があります。この記事では、例として mysqljs ライブラリを取り上げます。まず、このライブラリを Node.js プロジェクトに導入する必要があります:

var mysql = require('mysql');
ログイン後にコピー

データベースに接続する前に、MySQL を作成する必要があります接続プール。

var pool  = mysql.createPool({
  connectionLimit : 10,
  host            : 'example.org',
  user            : 'bob',
  password        : 'secret',
  database        : 'my_db'
});
ログイン後にコピー

hostuserpassworddatabase を正しいデータベース接続情報に置き換えてください。 。接続プールが正常に作成されたら、次のコードを使用してデータベースに接続できます。

pool.getConnection(function(err, connection) {
  // 在此处处理连接错误
  connection.query('SELECT * FROM customers', function(err, rows) {
    // 在此处处理查询结果
    connection.release(); // 释放连接
  });
});
ログイン後にコピー

接続を解放する前に、次の点に注意する必要があります。MySQL ストアド プロシージャを使用する場合、接続を解放する必要はありません。ストアド プロシージャが自動的に接続を閉じるためです。次の例では、ストアド プロシージャを呼び出す方法を学習します。

ストアド プロシージャの呼び出し

次のパラメータ リストを持つ getCustomers という名前のストアド プロシージャがあるとします。

  • ##in_start : 0 から始まるページ番号。
  • in_amount: 表示されるレコードの数。
  • out_total_rows: 合計行数。
  • out_total_pages: 合計ページ数。
次の例は、Node.js を使用してストアド プロシージャを呼び出す方法を示しています。

pool.getConnection(function(err, connection) {
  // 在此处处理连接错误
  connection.query('CALL getCustomers(?, ?, @total_rows, @total_pages)', [0, 10], function(err, rows) {
    if (err) throw err;

    // 执行第二个查询以获取返回值
    connection.query('SELECT @total_rows AS total_rows, @total_pages AS total_pages', function(err, rows) {
      if (err) throw err;

      var totalRows = rows[0][0].total_rows;
      var totalPages = rows[1][0].total_pages;

      console.log('Total rows: ' + totalRows);
      console.log('Total pages: ' + totalPages);

      connection.release();
    })
  });
});
ログイン後にコピー
最初の行では、ストアド プロシージャを呼び出します。ストアド プロシージャ内のすべてのパラメーターの代わりに #???

を使用していることに注意してください。この例では、ストアド プロシージャに 010 という 2 つのパラメーターを渡しました。 @total_rows@total_pages は、ストアド プロシージャの 2 つの出力パラメーターです。最初のクエリが実行された後、別の SQL クエリを実行して、出力パラメータの値を取得する必要があります。出力パラメータを取得したら、その値を操作できます。 結論

Node.js を使用してデータベースに接続し、ストアド プロシージャを呼び出すには、接続プーリングと接続解放を慎重に処理する必要があります。ストアド プロシージャの実行中に接続を手動で閉じたり解放したりする必要はありません。上記の例を使用すると、SQL ストアド プロシージャが正しく実行され、結果が得られます。

以上がNode.js を使用して SQL ストアド プロシージャを呼び出し、結果を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!