- MySQL
- Создание подключения
- Возможные ошибки при подключении
- Закрытие подключения
- Начинаем работать с MySQL в NodeJS. Часть 1
- Установка драйвера для MySQL в NodeJS
- Во-первых, создайте папку для хранения файлов приложения, например, mysql-node-app, и используйте команду npm init для создания файла package.json в ней:
- Во-вторых, установите NodeJS пакета MySQL с помощью следующей команды:
- В-третьих, создайте файл connect.js внутри папки mysql-node-app, который подключается к серверу базы данных MySQL.
- Подключение к серверу базы данных MySQL в NodeJS
- Во-первых, импортируйте модуль mysql, используя следующую инструкцию:
- Во-вторых, создайте соединение с базой данных MySQL, вызвав метод createConnection() и передав ему в виде параметра объект настроек о сервере MySQL, такую как адрес хоста, пользователь, пароль и база данных, следующим образом:
- Закрытие подключения к базе данных
- Комментарии ( 0 ):
- Создаем наш первый API при помощи Node.js и Express: Подключаем базу данных
- Установка
- Создаем базу данных
MySQL
Для работы с сервером MySQL в Node.js можно использовать ряд драйверов. Самые популярные из них mysql и mysql2. По большей части они совместимы. В данном случае мы будем использовать mysql2, так как, судя по ряду тестов, он предоставляет большую производительность.
Итак, установим пакет mysql2:
Создание подключения
Для создания подключения применяется метод createConnection() , который в качестве параметра принимает настройки подключения и возвращает объект, представляющий подключение.
const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb", password: "пароль_от_сервера" >);
Передаваемые в метод настройки конфигурации могут содержать ряд параметров. Наиболее используемые из них:
- host : хост, на котором запущен сервер mysql. По умолчанию имеет значение «localhost»
- port : номер порта, на котором запущен сервер mysql. По умолчанию имеет значение «3306»
- user : пользователь MySQL, который используется для подключения
- password : пароль для пользователя MySQL
- database : имя базы данных, к которой идет подключение. Необязательный параметр. Если он не указан, то подключение идет в целом к северу
- charset : кодировка для подключения, например, по умолчанию используется «UTF8_GENERAL_CI».
- timezone : часовой пояс сервера MySQL. This is used to type cast server date/time values to JavaScript. По умолчанию имеет значение «local»
Для установки подключения мы можем использовать метод connect() объекта connection:
const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb", password: "пароль_от_сервера" >); connection.connect(function(err) < if (err) < return console.error("Ошибка: " + err.message); >else < console.log("Подключение к серверу MySQL успешно установлено"); >>);
Метод connect() принимает функцию, параметр которой содержит ошибка, которая возникла при подключении.
Возможные ошибки при подключении
Если при подключении к серверу mysql генерируется ошибка
Client does not support authentication protocol requested by server; consider upgrading MySQL client
В этом случае необходимо в MySQL Workbench выполнить следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
Вместо ‘password’ должен быть указан пароль от MySQL для пользователя root.
Закрытие подключения
Для закрытия подключения применяется метод end() :
const mysql = require("mysql2"); const connection = mysql.createConnection(< host: "localhost", user: "root", database: "usersdb", password: "пароль_от_сервера" >); // тестирование подключения connection.connect(function(err) < if (err) < return console.error("Ошибка: " + err.message); >else < console.log("Подключение к серверу MySQL успешно установлено"); >>); // закрытие подключения connection.end(function(err) < if (err) < return console.log("Ошибка: " + err.message); >console.log("Подключение закрыто"); >);
При запуске приложения и удачном подключении-закрытии подключения мы увидим на консоли:
Подключение к серверу MySQL успешно установлено Подключение закрыто
Метод end() гарантирует, что перед закрытием подключения к бд будут выполнены все оставшиеся запросы, которые не завершились к моменту вызова метода.
Если мы не вызовем этот метод, то подключение будет оставаться активным, и приложение Node.js продолжит свою работу, пока сервер MySQL не закроет подключение.
Если же нам надо немедленно закрыть подключение, не дожидаясь выполнения оставшихся запросов, то в этом случае можно применить метод destroy() :
Начинаем работать с MySQL в NodeJS. Часть 1
В этой статье мы рассмотрим с Вами как подключиться к серверу базы данных MySQL в NodeJS.
Установка драйвера для MySQL в NodeJS
Есть несколько вариантов взаимодействия с MySQL в NodeJS. Здесь мы рассмотрим как использовать NodeJS драйвер для MySQL — mysqljs/mysql.
Во-первых, создайте папку для хранения файлов приложения, например, mysql-node-app, и используйте команду npm init для создания файла package.json в ней:
Во-вторых, установите NodeJS пакета MySQL с помощью следующей команды:
В-третьих, создайте файл connect.js внутри папки mysql-node-app, который подключается к серверу базы данных MySQL.
Мы будем использовать базу данных world_db для демонстрации, поэтому вам следует создать базу данных на своем сервере баз данных MySQL, выполнив следующую инструкцию CREATE DATABASE:
Как только база данных будет создана, вы сможете подключиться к ней из NodeJS.
Подключение к серверу базы данных MySQL в NodeJS
Во-первых, импортируйте модуль mysql, используя следующую инструкцию:
Во-вторых, создайте соединение с базой данных MySQL, вызвав метод createConnection() и передав ему в виде параметра объект настроек о сервере MySQL, такую как адрес хоста, пользователь, пароль и база данных, следующим образом:
let connection = mysql.createConnection( host: ‘localhost’,
user: ‘root’,
password: »,
database: ‘world_db’
>);
В этом примере мы создали подключение к базе данных world_db на локальном сервере баз данных.
В-третьих, вызовите метод connect() для подключения к серверу базы данных MySQL:
connection.connect(function(err) if (err) return console.error(‘ошибка: ‘ + err.message);
>
console.log(‘Подключились к базе данных MySQL’);
>);
Метод connect() принимает функцию обратного вызова с аргументом err, который содержит подробную информацию об ошибке, если будет ошибка.
Теперь давайте запустим программа. У меня файл называется connect.js:
> node connect.js
Подключились к базе данных MySQL
Если вы видите сообщение «Подключились к базе данных MySQL», то вы успешно подключились к серверу базы данных MySQL из NodeJS.
Предположим, что база данных world_db не существует на сервере баз данных, и вы попытаетесь подключиться к ней, в этом случае вы получите сообщение об ошибке (нет такой базы данных):
> node connect.js
error: ER_BAD_DB_ERROR: Unknown database ‘world_db’
Обратите внимание, что каждый метод, который вы вызываете для объекта подключения (connection), ставится в очередь и выполняется последовательно.
Закрытие подключения к базе данных
Чтобы закрыть соединение с базой данных, вы можете вызываеть метод end() для объекта подключения (connection).
Метод end() гарантирует, что все оставшиеся запросы будет выполнены до закрытия соединения с базой данных.
connection.end(function(err) if (err) return console.log(‘ошибка:’ + err.message);
>
console.log(‘Закрыли соединение с базой данных.’);
>);
Чтобы принудительно и немедленно закрыть соединение, вы можете использовать метод destroy(). Метод destroy() гарантирует, что для соединения больше не будут запускаться функции обратного вызовы или события
Обратите внимание, что метод destroy() не принимает никаких аргументов обратного вызова, как метод end().
Таким образом, сегодня мы начали рассматривать с Вами основы работы с MySQL в NodeJS. В следующей статье мы рассмотрим как создавать пул соединений с базой данных, что необходимо улучщения производительности приложоения.
Создано 19.08.2021 13:50:58
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.
Создаем наш первый API при помощи Node.js и Express: Подключаем базу данных
В первом руководстве этой серии, «Understanding RESTful API», мы рассмотрели, что из себя представляет архитектура REST, значение методов запроса HTTP и кодов состояния ответов и структуру конечной точки RESTful API. Во втором руководстве этой серии, «How to Set Up an Express API Server», мы рассмотрели, как создавать сервера и при помощи встроенного модуля HTTP Node.js, и при помощи фреймворка Express, а также как назначить маршруты для обработки запросов, выполняемых по различным URL-адресам.
В данный момент мы используем статические данные для отображения информации о пользователе в формате JSON при обращении к конечной точке API при помощи запроса по методу GET . В этом руководстве мы настроим базу данных MySQL для хранения данных, подключимся к ней из нашего приложения Node и добавим в API возможность использования методов GET , POST , PUT и DELETE для завершения реализации полноценного API.
Установка
На данный момент мы еще не использовали базу данных для хранения и выполнения манипуляций с какими-либо данными, так что мы установим ее сейчас. В этом руководстве мы будем использовать MySQL, и если у вас уже она установлена, то вы можете перейти к следующему разделу.
Если же нет, то вы можете скачать MAMP для macOS и Windows, который предоставляет бесплатную локальную инфраструктуру веб-сервера и базу данных. После их скачивания откройте программу и нажмите Start Servers для запуска MySQL.
Помимо настройки MySQL нам также необходимо программное обеспечение с GUI для просмотра данных базы. Если вы пользуетесь Mac, то скачайте SequelPro, если Windows – то SQLyog. После скачивания и запуска MySQL вы можете воспользоваться SequelPro или SQLyog для подключения к локальному серверу при помощи имени root и пароля root по 3306 порту.
Как только разобрались с этим, мы можем перейти к созданию базы данных для нашего API.
Создаем базу данных
В программе для просмотра вашей базы добавьте новую базу данных и назовите ее api . Убедитесь, что MySQL запущена, или у вас не получится подключиться к локальному серверу.
После создания базы api перейдите в нее и выполните следующий запрос для создания новой таблицы.
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,