MongoDB стає ще потужнішим, коли його інтегрують з додатком на Express. Використовуючи Mongoose, ми можемо встановити з’єднання між нашою базою даних і сервером, визначити моделі даних та протестувати створення документів. Цей посібник проведе вас через кроки підключення вашої бази даних до додатку на Express, створення документів і тестування вашої моделі.
Підключення нашої бази даних до додатку на Express
Щоб використовувати MongoDB у вашому додатку на Express, перший крок — підключити базу даних за допомогою Mongoose.
Крок 1: Встановлення залежностей
Переконайтеся, що Mongoose та Express встановлені у вашому проекті:
npm install mongoose express
Крок 2: Ініціалізація сервера та підключення до MongoDB
Налаштуйте базовий сервер на Express і підключіть його до MongoDB:
const express = require('express');
const mongoose = require('mongoose');
const app = express();
app.use(express.json());
// Підключення до MongoDB
mongoose.connect('mongodb://localhost:27017/tourApp', {
useNewUrlParser: true,
useUnifiedTopology: true,
}).then(() => {
console.log('Підключено до MongoDB');
}).catch(err => {
console.error('Помилка підключення до бази даних:', err);
});
// Запуск сервера
const PORT = 3000;
app.listen(PORT, () => {
console.log(`Сервер працює на http://localhost:${PORT}`);
});
Тепер ваш сервер готовий і підключений до MongoDB. Будь-які операції з базою даних будуть виконуватися через це з’єднання.
Створення документів і тестування моделі
Після підключення до бази даних наступний крок — визначити модель і створити документи. Створимо модель Tour
і протестуємо її з деякими тестовими даними.
Крок 1: Визначення схеми та моделі
Створіть файл tourModel.js
і визначте вашу схему:
const mongoose = require('mongoose');
const tourSchema = new mongoose.Schema({
name: {
type: String,
required: [true, 'У туру має бути назва'],
},
duration: {
type: Number,
required: [true, 'У туру має бути тривалість'],
},
price: {
type: Number,
required: [true, 'У туру має бути ціна'],
},
});
const Tour = mongoose.model('Tour', tourSchema);
module.exports = Tour;
Крок 2: Створення маршруту для додавання документів
У файлі server.js
визначте маршрут для додавання нового туру:
const Tour = require('./tourModel');
app.post('/api/v1/tours', async (req, res) => {
try {
const newTour = await Tour.create(req.body);
res.status(201).json({
status: 'success',
data: {
tour: newTour,
},
});
} catch (err) {
res.status(400).json({
status: 'fail',
message: err.message,
});
}
});
Крок 3: Тестування кінцевої точки
Використовуйте інструменти, як Postman чи cURL, щоб протестувати ваш API.
Ось приклад POST запиту для додавання туру:
Endpoint:
POST http://localhost:3000/api/v1/tours
Тіло запиту:
{
"name": "Safari Adventure",
"duration": 7,
"price": 1500
}
Очікувана відповідь:
{
"status": "success",
"data": {
"tour": {
"_id": "64e1d3ab123456789abc1234",
"name": "Safari Adventure",
"duration": 7,
"price": 1500,
"__v": 0
}
}
}
Якщо дані правильні, новий документ буде додано в колекцію tours
.
Крок 4: Отримати всі документи
Щоб отримати всі тури, створіть GET маршрут:
app.get('/api/v1/tours', async (req, res) => {
try {
const tours = await Tour.find();
res.status(200).json({
status: 'success',
results: tours.length,
data: {
tours,
},
});
} catch (err) {
res.status(400).json({
status: 'fail',
message: err.message,
});
}
});
Тестуйте цей маршрут за допомогою GET запиту:
GET http://localhost:3000/api/v1/tours
Очікувана відповідь:
{
"status": "success",
"results": 1,
"data": {
"tours": [
{
"_id": "64e1d3ab123456789abc1234",
"name": "Safari Adventure",
"duration": 7,
"price": 1500,
"__v": 0
}
]
}
}
Висновок
Інтеграція MongoDB з вашим додатком на Express за допомогою Mongoose — це простий, але потужний спосіб керувати даними. Цей посібник показав, як підключити ваш додаток до MongoDB, визначити модель і протестувати створення документів. З цими основами ви готові розширювати ваш додаток додатковими складними функціями та маршрутами. Щасливого кодування!
Перекладено з: Connecting MongoDB to an Express App and Testing Models