Демонстративный проект который показывает как работает интерфейс интернет-магазина. Это серверная часть целого приложения, клиент находится по этой ссылке.
- Express - фреймворк для создания NodeJS сервера.
- Nodemon - мониторинг проекта в реальном времени.
- Typescript - Типизация для уменьшение ошибок при (-пере)использования кода.
- tsx - библиотека для автоматической компиляции Typescript кода\файлов в JavaScript.
- Eslint - Линтер отслеживания ошибок в коде, отдельный удобный конфиг от @antfu (как без этого писать проекты 🤷♂️)
- Axios - удобная библиотека для запросов (временная).
- cross-env - библиотека для использования\изменения переменных окружения на всех платформах.
- bcrypt - библиотека на хеширования паролей.
- JWT - основная защита серверных данных.
- cookie-parser - без этой библитечки сервер не будет знать о куках в запросе.
- cors - удобная работа с
cors
. - dotenv - знаю в ноде есть уже поддержка переменных окружения, но с этой либой работать куда удобнее.
- envalid - библиотека для типизации переменных окружения, если не будет переменной которая используется она оповестит в консоле.
- pg - библиотека для удобной работы с базы данных PostgreSQL.
- slug - библиотека для преобразования строк (название продуктов).
Перед использованием, убедитесь что установили зависимости проекта
# npm
npm install
# pnpm
pnpm install
# yarn
yarn install
Важно! Не забывайте заполнять данные в ваши переменные окружения, файл
.env-example.env
добавлен исключительно как пример использования.
Вы можете запустить проект двумя способами:
- Продакшен
start
- Режим разработки
dev
Это было сделано для тестирования приложения вне зависимости от того какая цель запуска.
# npm
npm start
npm run dev
# pnpm
pnpm start
pnpm dev
# yarn
yarn start
yarn dev
В файле
Dockerfile
можно выбрать свой менеджер пакетов изменив значения переменнойPACKAGE_MANAGER
на ваше значение, по умолчанию этоyarn
.
Вы можете запустить проект двумя способами:
- Продакшен
app
- Режим разработки
dev_app
Для первого запуска добавляйте к запуску параметр --build
docker-compose up app
docker-compose up dev_app
/api
- основная приставка для использования ручек, все ручки которые не будут с этой приставкой(помимо документации) будут считаться как неправильный путь.
На том же порту как и сервер поднимается Swagger (ссылка). Посмотреть можно по пути /swagger
, а чтобы получить данные в формате JSON
нужно перейти на страницу /swagger.json
Если нашли ошибку либо опечатку в описании, пожалуйста напишите об этом создав в ишью.