В этой статье мы рассмотрим процесс создания простого интернет-магазина с использованием Node.js. Мы создадим базовую структуру приложения, добавим функционал для работы с товарами и корзину покупок.
Предварительные требования
- Установленный Node.js (рекомендуемая версия 18+)
- Базовые знания JavaScript
- Понимание основ работы с базами данных
Шаг 1: Создание проекта
Создаем новую директорию и инициализируем проект:
mkdir online-store
cd online-store
npm init -y
Устанавливаем необходимые зависимости:
npm install express mongoose body-parser cors
Шаг 2: Настройка основного файла
Создаем файл app.js
и добавляем базовый код:
const express = require(‘express’);
const mongoose = require(‘mongoose’);
const bodyParser = require(‘body-parser’);
const cors = require(‘cors’);const app = express();
const port = 3000;// Подключение middleware
app.use(bodyParser.json());
app.use(cors());// Подключение к базе данных
mongoose.connect(‘mongodb://localhost/onlinestore’, {
useNewUrlParser: true,
useUnifiedTopology: true
});// Определение модели товара
const Product = mongoose.model(‘Product’, new mongoose.Schema({
name: String,
price: Number,
description: String
}));// Маршрут для получения списка товаров
app.get(‘/products’, async (req, res) => {
const products = await Product.find();
res.json(products);
});// Запуск сервера
app.listen(port, () => {
console.log(`Сервер запущен на порту ${port}`);
});
Шаг 3: Добавление функционала корзины
Создаем файл cart.js
:
const express = require(‘express’);
const router = express.Router();// Хранилище корзины (в реальном проекте лучше использовать сессии или БД)
let cart = [];// Добавление товара в корзину
router.post(‘/cart’, (req, res) => {
const { productId, quantity } = req.body;// Логика добавления товара
cart.push({ productId, quantity });res.json({ message: ‘Товар добавлен в корзину’ });
});// Получение содержимого корзины
router.get(‘/cart’, (req, res) => {
res.json(cart);
});module.exports = router;
Шаг 4: Интеграция корзины в основное приложение
В app.js
добавляем:
const cartRouter = require(‘./cart’);
// Подключаем маршруты корзины
app.use(‘/api’, cartRouter);
Шаг 5: Тестирование
Запускаем сервер:
node app.js
Можно протестировать API через Postman или curl:
# Получение списка товаров
curl http://localhost:3000/products# Добавление товара в корзину
curl -X POST http://localhost:3000/api/cart -H «Content-Type: application/json» -d ‘{«productId»: «1», «quantity»: 1}’
Дополнительные улучшения
- Добавьте аутентификацию пользователей
- Реализуйте систему платежей
- Настройте валидацию данных
- Добавьте frontend-часть
- Настройте логирование и обработку ошибок
Заключение
Мы создали базовую структуру интернет-магазина на Node.js. Этот пример можно расширить, добавив дополнительные функции и улучшив производительность. Главное преимущество такого подхода — возможность масштабирования и добавления новых функций по мере необходимости.
Этот проект можно использовать как основу для более сложных приложений, добавляя новые модули и улучшая существующий функционал.