01:08
Урок 35: Работа с базами данных

Курс по программированию на JavaScript

Урок 35: Работа с базами данных

В этом уроке мы рассмотрим, как подключаться к базам данных, таким как MongoDB и MySQL, и выполнять основные операции с базами данных. Знание работы с базами данных необходимо для создания полноценных веб-приложений, которые могут сохранять и извлекать данные.

Подключение к MongoDB

MongoDB — это документоориентированная база данных, которая хранит данные в формате JSON. Для работы с MongoDB в Node.js часто используется библиотека mongoose.

Пример подключения к MongoDB и выполнения основных операций:

// Установка mongoose
npm install mongoose

// Подключение к MongoDB (app.js)
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
 .then(() => console.log('MongoDB connected'))
 .catch(err => console.error('MongoDB connection error:', err));

// Создание схемы и модели
const Schema = mongoose.Schema;

const userSchema = new Schema({
 name: String,
 age: Number
});

const User = mongoose.model('User', userSchema);

// Создание документа
const newUser = new User({ name: 'John', age: 30 });
newUser.save()
 .then(user => console.log('User saved:', user))
 .catch(err => console.error('Save error:', err));

// Поиск документов
User.find()
 .then(users => console.log('Users:', users))
 .catch(err => console.error('Find error:', err));
// MongoDB connected
// User saved: { name: 'John', age: 30 }
// Users: [{ name: 'John', age: 30 }]

Подключение к MySQL

MySQL — это реляционная база данных, которая хранит данные в таблицах. Для работы с MySQL в Node.js часто используется библиотека mysql или mysql2.

Пример подключения к MySQL и выполнения основных операций:

// Установка mysql2
npm install mysql2

// Подключение к MySQL (app.js)
const mysql = require('mysql2');

const connection = mysql.createConnection({
 host: 'localhost',
 user: 'root',
 database: 'mydatabase'
});

connection.connect(err => {
 if (err) {
 return console.error('MySQL connection error:', err);
 }
 console.log('MySQL connected');
});

// Создание таблицы
const createTableQuery = `
 CREATE TABLE IF NOT EXISTS users (
 id INT AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(255),
 age INT
 )
`;

connection.query(createTableQuery, (err, results) => {
 if (err) {
 return console.error('Create table error:', err);
 }
 console.log('Table created');
});

// Вставка данных
const insertQuery = 'INSERT INTO users (name, age) VALUES (?, ?)';
connection.query(insertQuery, ['Jane', 25], (err, results) => {
 if (err) {
 return console.error('Insert error:', err);
 }
 console.log('Data inserted:', results.insertId);
});

// Поиск данных
const selectQuery = 'SELECT * FROM users';
connection.query(selectQuery, (err, results) => {
 if (err) {
 return console.error('Select error:', err);
 }
 console.log('Users:', results);
});
// MySQL connected
// Table created
// Data inserted: 1
// Users: [{ id: 1, name: 'Jane', age: 25 }]

Основные операции с базами данных

Основные операции с базами данных включают создание, чтение, обновление и удаление данных. Эти операции часто обозначаются аббревиатурой CRUD (Create, Read, Update, Delete).

  • Создание (Create): Вставка новых данных в базу данных.
  • Чтение (Read): Извлечение данных из базы данных.
  • Обновление (Update): Изменение существующих данных в базе данных.
  • Удаление (Delete): Удаление данных из базы данных.

Упражнения

Упражнение 1: Подключение к MongoDB и выполнение CRUD операций

Создайте новое Node.js приложение, подключитесь к MongoDB и выполните операции создания, чтения, обновления и удаления документов.

Решение:

// Установка mongoose
npm install mongoose

// Подключение к MongoDB (app.js)
const mongoose = require('mongoose');

mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })
 .then(() => console.log('MongoDB connected'))
 .catch(err => console.error('MongoDB connection error:', err));

// Создание схемы и модели
const Schema = mongoose.Schema;

const userSchema = new Schema({
 name: String,
 age: Number
});

const User = mongoose.model('User', userSchema);

// Создание документа
const newUser = new User({ name: 'John', age: 30 });
newUser.save()
 .then(user => console.log('User saved:', user))
 .catch(err => console.error('Save error:', err));

// Чтение документов
User.find()
 .then(users => console.log('Users:', users))
 .catch(err => console.error('Find error:', err));

// Обновление документа
User.updateOne({ name: 'John' }, { age: 31 })
 .then(result => console.log('Update result:', result))
 .catch(err => console.error('Update error:', err));

// Удаление документа
User.deleteOne({ name: 'John' })
 .then(result => console.log('Delete result:', result))
 .catch(err => console.error('Delete error:', err));
// MongoDB connected
// User saved: { name: 'John', age: 30 }
// Users: [{ name: 'John', age: 30 }]
// Update result: { n: 1, nModified: 1, ok: 1 }
// Delete result: { n: 1, ok: 1, deletedCount: 1 }

Объяснение: Мы создали Node.js приложение, подключились к MongoDB и выполнили операции создания, чтения, обновления и удаления документов.

Упражнение 2: Подключение к MySQL и выполнение CRUD операций

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

Решение:

// Установка mysql2
npm install mysql2

// Подключение к MySQL (app.js)
const mysql = require('mysql2');

const connection = mysql.createConnection({
 host: 'localhost',
 user: 'root',
 database: 'mydatabase'
});

connection.connect(err => {
 if (err) {
 return console.error('MySQL connection error:', err);
 }
 console.log('MySQL connected');
});

// Создание таблицы
const createTableQuery = `
 CREATE TABLE IF NOT EXISTS users (
 id INT AUTO_INCREMENT PRIMARY KEY,
 name VARCHAR(255),
 age INT
 )
`;

connection.query(createTableQuery, (err, results) => {
 if (err) {
 return console.error('Create table error:', err);
 }
 console.log('Table created');
});

// Вставка данных
const insertQuery = 'INSERT INTO users (name, age) VALUES (?, ?)';
connection.query(insertQuery, ['Jane', 25], (err, results) => {
 if (err) {
 return console.error('Insert error:', err);
 }
 console.log('Data inserted:', results.insertId);
});

// Чтение данных
const selectQuery = 'SELECT * FROM users';
connection.query(selectQuery, (err, results) => {
 if (err) {
 return console.error('Select error:', err);
 }
 console.log('Users:', results);
});

// Обновление данных
const updateQuery = 'UPDATE users SET age = ? WHERE name = ?';
connection.query(updateQuery, [26, 'Jane'], (err, results) => {
 if (err) {
 return console.error('Update error:', err);
 }
 console.log('Data updated:', results);
});

// Удаление данных
const deleteQuery = 'DELETE FROM users WHERE name = ?';
connection.query(deleteQuery, ['Jane'], (err, results) => {
 if (err) {
 return console.error('Delete error:', err);
 }
 console.log('Data deleted:', results);
});
// MySQL connected
// Table created
// Data inserted: 1
// Users: [{ id: 1, name: 'Jane', age: 25 }]
// Data updated: { affectedRows: 1 }
// Data deleted: { affectedRows: 1 }

Объяснение: Мы создали Node.js приложение, подключились к MySQL и выполнили операции создания, чтения, обновления и удаления данных.

Категория: JavaScript | Просмотров: 13 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: