Создание сайта на Next.js с использованием .env файла Вот пошаговая инструкция для создания сайта на Next.js с настройкой .env файла, где указан порт 80 и API-доступ через переменную NEXT_PUBLIC_BACKEND_URL. 1. Установка Next.js Сначала создайте новый проект Next.js. Для этого выполните следующую команду в терминале: bash Перейдите в созданную папку: bash 2. Создание .env файла Создайте файл .env в корне проекта и добавьте в него следующие строки: javascript Примечание: Переменные, начинающиеся с NEXT_PUBLIC_, автоматически становятся доступными на стороне клиента в Next.js. 3. Настройка порта По умолчанию Next.js запускается на порту 3000. Чтобы изменить порт на 80, можно использовать переменную окружения PORT. Для этого добавьте в package.json следующую команду в…
Read MoreАвтор: disel
Добавить jwt авторизацию в Api на фронте
Чтобы добавить JWT авторизацию в ваш API с использованием RTK Query и fetchBaseQuery, нужно передавать токен в заголовках запросов. Это можно сделать, настроив fetchBaseQuery для добавления токена в каждый запрос. Вот как это можно реализовать: Шаги для добавления JWT авторизации Обновленный код javascript Объяснение изменений Дополнительно: Обработка ошибок авторизации Если токен недействителен или истек, сервер может вернуть ошибку 401 (Unauthorized). Вы можете обработать это, добавив baseQuery с обработчиком ошибок: javascript Теперь ваш API поддерживает JWT авторизацию! 🎉
Read MoreКак реализовать в nestjs авторизацию jwt с ролями доступа к API. Например student имеет доступ только просматривать оценки, а teacher имеет доступ их ставить. Для доступа к данным используем prisma
Реализация JWT авторизации с ролями в NestJS с использованием Prisma В этом примере мы создадим систему авторизации с использованием JWT в NestJS, где роли (student и teacher) будут определять доступ к API. Мы будем использовать Prisma для работы с базой данных. Шаг 1: Установка необходимых пакетов Установите зависимости для работы с JWT: bash Шаг 2: Настройка Prisma модели Добавьте модель пользователей с ролями в файл prisma/schema.prisma: prisma После этого выполните миграцию: bash Шаг 3: Создание модуля аутентификации Шаг 4: Реализация ролей Шаг 5: Пример использования ролей в контроллере Шаг 6: Тестирование Теперь у вас есть система авторизации…
Read Moreprisma подключается к mysql как указать env
Чтобы Prisma могла подключаться к базе данных MySQL, необходимо указать строку подключения в переменной окружения DATABASE_URL. Это делается в файле .env, который находится в корне проекта. Вот как это сделать: Шаг 1: Настройка строки подключения в .env Шаг 2: Убедитесь, что MySQL настроен для удаленного подключения (если база данных не локальная) Если вы подключаетесь к удаленной базе данных, убедитесь, что MySQL настроен для приема внешних подключений. Для этого: Шаг 3: Проверка подключения Prisma После настройки строки подключения выполните команду для проверки соединения: bash Эта команда подтянет схему базы данных в файл schema.prisma. Если подключение…
Read MoreСоздание сайта на NestJS с использованием Docker, Prisma и API для работы с таблицами
Давайте создадим проект на основе вашего SQL-кода. Мы будем использовать NestJS для создания API, Prisma для работы с базой данных и Docker для контейнеризации приложения. Шаг 1: Инициализация проекта NestJS Шаг 2: Установка Prisma Шаг 3: Настройка базы данных Шаг 4: Создание модулей и сервисов в NestJS Шаг 5: Настройка Docker Шаг 6: Тестирование API Теперь у вас есть готовый проект на NestJS с использованием Docker и Prisma для работы с таблицами!
Read MoreПроблема с типом данных BigInt в Prisma
Ваша проблема связана с тем, что тип данных Int в Prisma соответствует 32-битному целому числу, которое имеет диапазон от -2,147,483,648 до 2,147,483,647. Если значение osmId превышает этот диапазон, то возникает ошибка, так как оно выходит за пределы допустимого диапазона. Решение: Использование типа BigInt Для работы с большими числами, которые выходят за пределы диапазона Int, Prisma поддерживает тип данных BigInt. Вы можете изменить тип поля osmId на BigInt в вашей модели следующим образом: prisma Шаги для внесения изменений: Использование в коде TypeScript В TypeScript значения BigInt представлены специальным типом bigint. Если вы используете Prisma Client для работы с этим полем, убедитесь, что вы правильно обрабатываете…
Read Moreпример с Select2 в yii2
Для реализации поля с использованием Select2 в Yii2, где можно выбирать нескольких участников, приведу пример. Select2 — это мощный jQuery-плагин, который заменяет стандартные выпадающие списки, добавляя поддержку поиска, множественного выбора и других функций. 1. Установка Select2 В Yii2 можно использовать расширение kartik-v/yii2-widget-select2, которое упрощает интеграцию Select2.Установите его через Composer: bash 2. Модель В модели укажите поле participants как массив, чтобы поддерживать множественный выбор: php 3. Контроллер Передайте список участников в представление. Например: php 4. Представление Используем виджет Select2 для отображения поля с множественным выбором: php 5. Сохранение и загрузка данных При сохранении данных из формы значения будут переданы как массив. В контроллере…
Read MoreДля реализации хранения приглашённых участников в поле типа SET в MySQL и работы с этим полем через элементы формы в Yii2, нужно учитывать несколько моментов. Вот пошаговое руководство:
1. Создание поля в MySQL Поле типа SET в MySQL позволяет хранить несколько значений из заранее определённого набора. Однако, в вашем случае, вы хотите хранить первичные ключи участников. Это возможно, но не совсем рекомендуется, так как SET имеет ограничения (например, фиксированный список значений). Лучше использовать поле типа JSON или TEXT для хранения массива идентификаторов участников. Но если вы всё же хотите использовать SET, создайте поле следующим образом: sql Здесь ‘1’, ‘2’, ‘3’, ‘4’, ‘5’ — это возможные значения (идентификаторы участников). Если список участников будет динамическим, лучше использовать другой подход (например, JSON). 2. Модель в Yii2 В модели Yii2 нужно указать, что поле participants может содержать массив…
Read Moreв модели yii2 вместо float [[‘budget’,’offbudget’,’grant’], ‘float’]
В Yii2, если вы хотите заменить валидатор float для полей budget, offbudget и grant, вы можете использовать встроенные валидаторы или кастомные правила валидации. Например, если вам нужно использовать другой подход для проверки числовых значений, вы можете заменить float на number, который является более универсальным валидатором для чисел.Пример кода: php Разница между float и number: Если вам нужно, чтобы значения были строго числами с плавающей точкой, оставьте float. Если же требуется более гибкая проверка, используйте number. Пример с дополнительными параметрами: Если вы хотите задать ограничения, например, минимальное и максимальное значение, вы можете сделать это так: php Пример с проверкой только целых чисел: Если вам нужно,…
Read MoreОбработка нажатия на кнопку «Занести балл»
Когда пользователь нажимает на кнопку «Занести балл», необходимо выполнить следующие действия: Вот пример реализации этого процесса с использованием jQuery: javascript В этом коде мы получаем значение «balls» из поля ввода, отправляем AJAX-запрос на сервер, и после успешного сохранения обновляем страницу, чтобы отобразить новое значение. Если возникает ошибка, мы показываем сообщение об ошибке. Да, можно изменить значение в поле с именем «balls» без использования AJAX-запроса. Вот как это можно сделать: javascript В этом коде мы используем jQuery, чтобы найти элемент, содержащий текст «Балл:», извлечь значение после двоеточия и установить его в…
Read More