Для формирования JSON из двух запросов SQL в Node.js, вы можете использовать функцию Promise.all
, чтобы сделать оба запроса параллельно, а затем объединить результаты в JSON-объект.
Вот пример кода, который иллюстрирует этот подход:
const mysql = require('mysql'); // Конфигурация подключения к базе данных const connection = mysql.createConnection({ host: 'localhost', user: 'username', password: 'password', database: 'database_name', }); // Функция для выполнения SQL-запроса function executeQuery(query) { return new Promise((resolve, reject) => { connection.query(query, (error, results) => { if (error) { reject(error); } else { resolve(results); } }); }); } // Функция для формирования JSON из двух запросов async function generateJsonFromQueries() { try { // Выполняем оба запроса параллельно const results = await Promise.all([ executeQuery('SELECT * FROM table1'), executeQuery('SELECT * FROM table2'), ]); // Создаем JSON-объект const json = { table1: results[0], table2: results[1], }; return JSON.stringify(json); } catch (error) { throw new Error('Ошибка при генерации JSON: ' + error.message); } } // Вызываем функцию генерации JSON и обрабатываем результат generateJsonFromQueries() .then((json) => { console.log(json); }) .catch((error) => { console.error(error); });
В этом коде мы создаем подключение к базе данных и определяем функцию executeQuery
, которая выполняет SQL-запрос и возвращает результат в виде промиса. Затем мы определяем функцию generateJsonFromQueries
, которая использует Promise.all
, чтобы выполнить два запроса параллельно и объединить результаты в JSON-объект. Наконец, мы вызываем функцию generateJsonFromQueries
, обрабатываем результат и выводим его в консоль.
Убедитесь, что вы правильно настроили подключение к базе данных и заменили 'username'
, 'password'
и 'database_name'
значениями соответствующими вашей базе данных.
Надеюсь, это помогло! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.