An open API service indexing awesome lists of open source software.

https://github.com/greenbabyborn/express-users

Demo REST API Service for users
https://github.com/greenbabyborn/express-users

expressjs jwt postgresql prisma-orm

Last synced: about 2 months ago
JSON representation

Demo REST API Service for users

Awesome Lists containing this project

README

          

# User Service API

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

## Возможности

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

## Технологии

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

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

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

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

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

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

```bash
npm install
```

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

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

```dotenv
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 и выполните миграцию базы данных:

```bash
npx prisma generate
npx prisma migrate dev --name init
```

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

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

```bash
npm run dev
```

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

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

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

```bash
npm run build
```

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

```bash
node dist/index.js
```

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

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

---

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