Как заставить работать одновременно фронтенд и бэкенд на одном порте?

В Node.js это можно осуществить с помощью библиотеки Express, которая является одним из самых популярных фреймворков для создания веб-приложений.

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

1. Инициализация проекта:

npm init

Во время выполнения этой команды вам будет предложено ввести некоторую информацию о проекте. Вы можете оставить значения по умолчанию или ввести свои.

2. Установка Express:

npm install express --save

Ключевое здесь — флаг --save, который добавит пакет в список зависимостей вашего проекта.

3. Создание app.js (или любого другого имени файла):

const express = require('express');
const app = express();

// обработка запросов к фронтенду
app.use(express.static('public'));

// обработка запросов к бэкенду
app.get('/api/data', (req, res) => {
  res.json({ message: 'Привет от бэкенда!' });
});

// запуск сервера
app.listen(3000, () => console.log('Сервер запущен на порту 3000'));

Здесь мы создаем новое приложение Express, используем express.static для обработки запросов к файлам фронтенда, а также определяем маршрут /api/data, который будет обрабатывать запросы к бэкенду и возвращать JSON-ответ.

4. Создание папки public и размещение фронтенд файла (например, index.html) внутри нее.

5. Запуск сервера:

node app.js

Теперь вы можете открыть браузер и посетить http://localhost:3000, чтобы увидеть ваш фронтенд и также отправить запрос GET на http://localhost:3000/api/data, чтобы получить ответ от бэкенда.

В результате вы создали сервер, который работает одновременно в фронтенде и бэкенде на одном порте 3000. Фронтенд-файлы будут обрабатываться статически, а бэкенд-запросы будут обрабатываться на отдельных маршрутах. Это осуществляется с использованием Express, который предоставляет удобные механизмы для создания веб-приложений.