SQL запросы в JavaScript

При создании веб-приложений часто необходимо взаимодействовать с базами данных для извлечения, хранения или обработки данных. В этой записи блога мы обсудим, как запрашивать базу данных SQL с помощью JavaScript. Мы сосредоточимся на использовании Node.js в качестве среды выполнения и популярного пакета npm mysql для управления взаимодействием с базой данных.

Предпосылки

Прежде чем приступить к изучению кода, убедитесь, что в вашей среде разработки установлено и доступно следующее:

  • Node.js (проверить, установлен ли он, можно, введя команду node -v в командной строке)
  • npm (менеджер пакетов Node.js, поставляется в комплекте с Node.js)

Настройка проекта

Для начала давайте создадим новую папку для нашего проекта и перейдем в нее:

mkdir sql-query-javascript
cd sql-query-javascript
    

Далее инициализируйте новый проект Node.js с помощью npm:

npm init -y

Эта команда создаст package.jsonфайл в каталоге вашего проекта.

Теперь давайте установим пакет mysql npm:

npm install mysql

Создание подключения к базе данных

Создайте новый файл JavaScript с именем app.jsв папке вашего проекта и добавьте следующий код для создания подключения к вашей базе данных MySQL:

    const mysql = require('mysql');

    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'your_database_user',
        password: 'your_database_password',
        database: 'your_database_name'
    });

    connection.connect((err) => {
        if (err) throw err;
        console.log('Connected to the database!');
    });

Обязательно замените заполнители фактическими учетными данными вашей базы данных.

Выполнение простого SQL-запроса

После установки соединения мы можем выполнить SQL-запрос. Допустим, у нас есть таблица с именем users и мы хотим извлечь из нее все записи. Добавьте следующий код в ваш app.jsфайл:

    connection.query('SELECT * FROM users', (err, results, fields) => {
        if (err) throw err;
        console.log(results);
    });

    connection.end();

Этот код выполнит SQL-запрос SELECT * FROM users и выведет результаты на консоль. Connection.end() вызывается для закрытия соединения после завершения запроса.

Обработка параметров запроса

Допустим, мы хотим получить определенного пользователя по его адресу электронной почты. Мы можем использовать плейсхолдеры, чтобы избежать атак SQL-инъекций. Вот как это можно сделать:

    const userEmail = 'user@example.com';

    connection.query('SELECT * FROM users WHERE email = ?', [userEmail], (err, results, fields) => {
        if (err) throw err;
        console.log(results);
    });

    connection.end();

Символ ? используется как заполнитель для параметра email, который мы передаем как массив во втором аргументе функции connection.query(). Такой подход помогает предотвратить атаки SQL-инъекций.

Заключение

В этой записи блога мы узнали, как запрашивать базу данных SQL с помощью JavaScript и Node.js. Мы обсудили настройку проекта с Node.js и npm, подключение к базе данных MySQL с помощью пакета mysql и выполнение запросов SQL с параметризованным вводом. Это отличная отправная точка для создания веб-приложений, которым необходимо взаимодействовать с базами данных.