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 サイトの他の関連記事を参照してください。