Підключення MongoDB до Express-додатку та тестування моделей

MongoDB стає ще потужнішим, коли його інтегрують з додатком на Express. Використовуючи Mongoose, ми можемо встановити з’єднання між нашою базою даних і сервером, визначити моделі даних та протестувати створення документів. Цей посібник проведе вас через кроки підключення вашої бази даних до додатку на Express, створення документів і тестування вашої моделі.

pic

Підключення нашої бази даних до додатку на 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

Leave a Reply

Your email address will not be published. Required fields are marked *