Skip to content

GreenBabyBorn/express-users

Repository files navigation

User Service API

Этот проект представляет собой сервис для управления пользователями.

Возможности

  • Регистрация пользователя
  • Авторизация пользователя (JWT)
  • Получение пользователя по ID (для админа или самого пользователя)
  • Получение списка пользователей (только для админа)
  • Блокировка/разблокировка пользователя (для админа или самого пользователя)

Технологии

  • Node.js
  • Express.js
  • PostgreSQL
  • Prisma ORM + zod-prisma-types
  • Zod
  • TypeScript
  • bcryptjs
  • jsonwebtoken

Установка и запуск

Следуйте этим шагам, чтобы поднять и запустить проект локально:

1. Клонирование репозитория

git clone https://github.com/GreenBabyBorn/express-users.git
cd express-users

2. Установка зависимостей

npm install

3. Настройка переменных окружения

Создайте файл .env в корневой директории проекта и добавьте следующие переменные:

DATABASE_URL="postgresql://user:password@localhost:5432/express_users?schema=public"
JWT_SECRET="your_super_secret_jwt_key"
PORT=3000

Замените user, password, localhost:5432 и express_users на данные вашей базы данных PostgreSQL. JWT_SECRET должен быть длинной и сложной строкой.

4. Настройка и миграция базы данных Prisma

Убедитесь, что ваш сервер PostgreSQL запущен и доступен по адресу, указанному в DATABASE_URL.

Затем сгенерируйте Prisma Client и выполните миграцию базы данных:

npx prisma generate
npx prisma migrate dev --name init

5. Запуск проекта

Для разработки (с автоматической перезагрузкой)

npm run dev

Сервер будет доступен по адресу http://localhost:3000 (или на порту, указанном в .env).

Для продакшн билда

Сначала скомпилируйте TypeScript код:

npm run build

Затем запустите скомпилированный код:

node dist/index.js

Тестирование API

Вы можете использовать коллекции запросов для Hoppscotch или Postman, которые были предоставлены ранее, для тестирования эндпоинтов API.


При необходимости создайте пользователя-администратора вручную в базе данных (например с помощью npx prisma studio), чтобы протестировать эндпоинты, доступные только администраторам.

About

Demo REST API Service for users

Topics

Resources

Stars

Watchers

Forks

Contributors