MySQL и Node.js — Подключение к базе данных

MySQL и Node.js — Подключение к базе данных
5 (100%) 7 votes

Существует несколько модулей для работы с MySQL в Node.js. Но самый популярный модуль — это node-mysql. Данный модуль появилось одним из первых, и с его помощью написан довольно много Node.js / MySQL приложений.

Давайте приступим к делу. Чтобы начать использовать MySQL в проекте, сначало нужно установить модуль mysql.

npm install mysql

После успешной установки нам нужно произвести подключение к базе данных.

const mysql = require("mysql");

const connection = mysql.createConnection({
    host: "localhost",
    user: "root",
    password: "my_password"
});

connection.connect();

Это пока еще не все, мы открыли соединение с сервером MySQL и не закрыли. Если мы сейчас запустим даный сценарий, он не завершается сам. Для закрытие соединение у объекта connection есть метод end — connection.end();

Метод принимает callback функцию, и он гарантирует, что все активные запросы успеют завершится до закрытие соединение.

connection.end(function(err){
    if(err) return console.log(err);

    console.log("Disconnect");
});

Метод createConnection может принимать и другие (необязательные) параметры. Вот некоторые из них:

  • charset — Это кодировка, по умолчанию стоит UTF8_GENERAL_CI,
  • timezone — Временная зона, по умолчанию локальная времия — local,
  • flags — Список флагов соединения,
  • multipleStatements — По умолчанию отключена для защиты от SQL-инъекций. Разрешает многократное использование SQL-инструкции за один запрос.

А теперь давайте сделаем запрос к базе данных. Для выполнение запросов к базе есть метод query. Он первым параметром принимает SQL запрос, а вторым callback функцию.

connection.query("SELECT * FROM users", function(err, rows, fields){
    if(err) return console.log(err);

    // Действие с результатом
});

Метод query нужно вызвать до закрытие соединение.

В следующей статье я более подробно расскажу о запросах к базе MySQL из Node.js, и посмотрим как можно реализовать CRUD операции.


Об авторе

Занимаюсь программированием уже более 7 лет. Часто использую JavaScript (Node.js) и Python.

Комментарии