ホームページ >ウェブフロントエンド >フロントエンドQ&A >nodejsの同時クエリ
Node.js 同時クエリ
最新の Web アプリケーションの複雑さが増すにつれ、従来のシングルスレッド モデルでは高い同時実行性のニーズを満たすことができなくなりました。 Node.js は、高性能な JavaScript 実行環境として、クエリと同時処理を簡単に実装できます。この記事では、次のような Node.js での同時クエリの使用方法を紹介します。
function fetchData(url) { return new Promise((resolve, reject) => { const request = require('request'); request(url, (error, response, body) => { if (error) { reject(error); } else { resolve(body); } }); }); } const url1 = 'https://api.via.placeholder.com/150'; const url2 = 'https://api.via.placeholder.com/300'; const url3 = 'https://api.via.placeholder.com/450'; const promises = [ fetchData(url1), fetchData(url2), fetchData(url3) ]; Promise.all(promises) .then((results) => { console.log(results); }) .catch((error) => { console.log(error); });async/await 構文を使用すると、sugar は非同期タスクをより簡潔かつ読みやすく処理できます。 async キーワードは、関数を変更して非同期関数にするために使用されます。非同期関数では、await キーワードを使用して非同期タスクの完了を待機し、その戻り値を取得できます。以下は、async/await 構文シュガーを使用したサンプル コードです:
async function fetchData(url) { return new Promise((resolve, reject) => { const request = require('request'); request(url, (error, response, body) => { if (error) { reject(error); } else { resolve(body); } }); }); } const url1 = 'https://api.via.placeholder.com/150'; const url2 = 'https://api.via.placeholder.com/300'; const url3 = 'https://api.via.placeholder.com/450'; async function fetchAll() { const results = await Promise.all([ fetchData(url1), fetchData(url2), fetchData(url3) ]); console.log(results); } fetchAll();4. データベース、API、およびネットワーク リクエストでの同時クエリの適用同時クエリはデータベース、API、およびネットワーク リクエストで使用されます。幅広い用途があります。データベース クエリでは、Promise オブジェクトと async/await 構文シュガーを使用して、複数のデータ テーブルを同時にクエリし、複数のテーブルに対して結合クエリを実行できます。 API リクエストでは、Promise オブジェクトと async/await 構文シュガーを使用して、複数のリクエストを同時に開始し、その結果を結合して処理できます。ネットワークリクエストでは、Promise オブジェクトと async/await 構文シュガーを使用して、複数のリクエストを同時に開始し、その戻り結果を取得できます。 以下は、Node.js を使用してデータベース クエリに同時クエリを実装するためのサンプル コードです:
const mysql = require('mysql'); const pool = mysql.createPool({ connectionLimit: 10, host: 'localhost', user: 'root', password: '', database: 'test' }); async function query(sql) { return new Promise((resolve, reject) => { pool.getConnection((err, connection) => { if (err) { reject(err); } else { connection.query(sql, (error, results, fields) => { connection.release(); if (error) { reject(error); } else { resolve(results); } }); } }); }); } async function fetchAll() { const [results1, results2, results3] = await Promise.all([ query('SELECT * FROM table1'), query('SELECT * FROM table2'), query('SELECT * FROM table3') ]); console.log(results1, results2, results3); } fetchAll();上記は、Node.js の同時クエリに関するいくつかの紹介と例です。同時クエリを使用すると、システムのスループットと応答速度が向上し、システムのパフォーマンスとユーザー エクスペリエンスが向上します。 Node.js の非同期メカニズムとイベント ループを使用して同時クエリを簡単に実装でき、Promise オブジェクトと async/await 構文シュガーを使用して非同期タスクをより柔軟かつ便利に処理できます。データベース クエリ、API リクエスト、ネットワーク リクエストのいずれにおいても、Node.js を使用して同時クエリとデータ フロー制御を実装することができ、システムの高いパフォーマンスと高い同時実行性のサポートと保証を提供します。
以上がnodejsの同時クエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。