Как правильно сделать сложный запрос к БД, через Node.js?

Для выполнения сложных запросов к базе данных через Node.js необходимо использовать соответствующую библиотеку для работы с базами данных. В данном ответе я рассмотрю пример работы с PostgreSQL базой данных и библиотекой node-postgres.

1. Установка зависимостей:
Перед началом работы необходимо установить зависимости при помощи команды:

npm install pg

2. Подключение к базе данных:

const { Pool } = require('pg');
const pool = new Pool({
    user: 'ваш_пользователь',
    host: 'ваш_хост',
    database: 'ваша_база_данных',
    password: 'ваш_пароль',
    port: ваш_порт,
});

3. Выполнение запросов:
Пример выполнения простого запроса SELECT:

const getUsers = async () => {
    try {
        const { rows } = await pool.query('SELECT * FROM users');
        console.log(rows);
    } catch (error) {
        console.error(error);
    }
}

Пример выполнения запроса SELECT с параметрами:

const getUserById = async (userId) => {
    try {
        const { rows } = await pool.query('SELECT * FROM users WHERE id = $1', [userId]);
        console.log(rows);
    } catch (error) {
        console.error(error);
    }
}

Пример выполнения запроса INSERT:

const createUser = async (user) => {
    try {
        const { rows } = await pool.query('INSERT INTO users (name, age) VALUES ($1, $2) RETURNING *', [user.name, user.age]);
        console.log(rows);
    } catch (error) {
        console.error(error);
    }
}

Пример выполнения запроса UPDATE:

const updateUser = async (userId, newName) => {
    try {
        const { rows } = await pool.query('UPDATE users SET name = $1 WHERE id = $2 RETURNING *', [newName, userId]);
        console.log(rows);
    } catch (error) {
        console.error(error);
    }
}

Пример выполнения запроса DELETE:

const deleteUser = async (userId) => {
    try {
        const { rows } = await pool.query('DELETE FROM users WHERE id = $1 RETURNING *', [userId]);
        console.log(rows);
    } catch (error) {
        console.error(error);
    }
}

Это основные примеры выполнения запросов к базе данных при помощи библиотеки node-postgres. Она предоставляет удобный и безопасный способ взаимодействия с базой данных в Node.js. Выше приведенные примеры позволят вам выполнять сложные запросы и получать результаты для дальнейшей обработки в вашем приложении.