Этот проект - шаблон для создания веб-приложений на TypeScript с использованием фреймворка Express.js и ORM Prisma для работы с базой данных.
Проект уже содержит настройки для аутентификации через JWT токены (для доступа и обновления).
Для работы с проектом вам понадобится:
- Node.js (минимальная версия 20.11.1)
- Доступ к интернету для установки зависимостей
-
Установите Node.js:
Если у вас еще нет Node.js или ваша версия устарела, скачайте и установите актуальную версию с официального сайта Node.js.
-
Клонируйте репозиторий:
Откройте терминал (командную строку) и выполните следующую команду:
git clone https://github.com/space-symbol/prisma-express-ts-api.git
cd prisma-express-ts
Выполните следующую команду для установки всех необходимых зависимостей проекта:
npm install
Перед запуском проекта убедитесь, что у вас есть следующие директории: public/images. Если нет, то создайте с помощью следующей команды:
mkdir public public/images
Создайте файл с именем .env в корневой директории проекта. Откройте этот файл в текстовом редакторе и добавьте следующие строки:
PORT=3000
DATABASE_URL=mysql://пользователь:пароль@localhost:3306/название_базы_данных
JWT_ACCESS_SECRET=ваш_секретный-ключ_для_acess_токенов
JWT_REFRESH_SECRET=ваш_секретный-ключ_для_refresh_токенов
CLIENT_URL=http://localhost:3000
STATIC_DIRNAME=public
IMAGES_DIRNAME=images
- PORT - порт, на котором будет запущен сервер (например, 3000)
- DATABASE_URL - URL для подключения к базе данных
- JWT_ACCESS_SECRET - секретный ключ для создания и верификации JWT access-токенов
- JWT_REFRESH_SECRET - секретный ключ для создания и верификации JWT refresh-токенов
- CLIENT_URL - URL клиентского приложения (если используется)
- STATIC_DIRNAME - путь к статическим файлам (если используется)
- IMAGES_DIRNAME - путь к папке с изображениями (если используется)
Замените ваш_секретный_ключ_для_access_токенов и ваш_секретный_ключ_для_refresh_токенов на собственные секретные для генерации токенов JWT. Ими могут быть произвольные строки
Для генерации схем базы данных пропишите следующую команду:
npx prisma db push
или
npx prisma migrate dev --name init
Далее её можно заполнить тестовыми значениями с помощью следующей команды:
npx prisma db seed
После настройки всех переменных окружения можно убедитесь, что база данных запущена и доступна. Далее запустите проект с помощью следующей команды:
npm start
После успешного запуска, сервер будет доступен по адресу http://localhost:(PORT)/api, где PORT - указанный порт в переменной окружения PORT.
API можно протестировать с помощью Postman или curl, обращаясь к URL http://localhost:3000/api и используя указанные endpoints.
Пример использования curl для получения списка продуктов:
curl http://localhost:3000/api/product
Пример использования curl для получения списка тегов:
curl http://localhost:3000/api/tag