ホームページ >ウェブフロントエンド >フロントエンドQ&A >Node.js を使用して SQL ストアド プロシージャを呼び出し、結果を取得する方法
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' });
host
、user
、password
、database
を正しいデータベース接続情報に置き換えてください。 。接続プールが正常に作成されたら、次のコードを使用してデータベースに接続できます。
pool.getConnection(function(err, connection) { // 在此处处理连接错误 connection.query('SELECT * FROM customers', function(err, rows) { // 在此处处理查询结果 connection.release(); // 释放连接 }); });
接続を解放する前に、次の点に注意する必要があります。MySQL ストアド プロシージャを使用する場合、接続を解放する必要はありません。ストアド プロシージャが自動的に接続を閉じるためです。次の例では、ストアド プロシージャを呼び出す方法を学習します。
次のパラメータ リストを持つ getCustomers
という名前のストアド プロシージャがあるとします。
: 0 から始まるページ番号。
: 表示されるレコードの数。
: 合計行数。
: 合計ページ数。
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(); }) }); });最初の行では、ストアド プロシージャを呼び出します。ストアド プロシージャ内のすべてのパラメーターの代わりに #???
を使用していることに注意してください。この例では、ストアド プロシージャに 0
と 10
という 2 つのパラメーターを渡しました。 @total_rows
と @total_pages
は、ストアド プロシージャの 2 つの出力パラメーターです。最初のクエリが実行された後、別の SQL クエリを実行して、出力パラメータの値を取得する必要があります。出力パラメータを取得したら、その値を操作できます。 結論
以上がNode.js を使用して SQL ストアド プロシージャを呼び出し、結果を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。