Quickstarters
CRUD Samples
Как создать CRUD-приложение с Solid?
34 мин
обзор в этом руководстве вы научитесь разрабатывать полное crud (создание, чтение, обновление, удаление) приложение с использованием solidjs мы будем использовать back4app в качестве нашего серверного решения, что позволит вам легко управлять данными это руководство проведет вас через создание проекта back4app, разработку гибкой схемы данных и кодирование операций crud в приложении solidjs сначала вы создадите проект back4app под названием basic crud app solidjs этот проект предоставляет надежную среду хранения данных без схемы вы определите свою модель данных, создавая коллекции и поля вручную или с помощью ai агента back4app затем вы будете управлять своими данными на сервере с помощью удобного приложения back4app admin наконец, вы интегрируете свое приложение solidjs с back4app через parse javascript sdk (или через rest/graphql api по мере необходимости), обеспечивая при этом безопасный доступ к концу этого учебника у вас будет готовое к производству приложение solidjs, которое выполняет основные функции crud вместе с безопасной аутентификацией пользователей и управлением данными что вы узнаете как создать приложение crud на основе solidjs с современным бэкендом без кода лучшие практики для проектирования масштабируемого бэкенда и его подключения к вашему приложению solidjs как использовать приложение back4app admin для упрощения операций с данными стратегии развертывания, включая контейнеризацию docker, для бесшовного запуска вашего приложения solidjs предварительные требования перед началом убедитесь, что у вас есть аккаунт back4app с активным проектом нужна помощь? посетите начало работы с back4app https //www back4app com/docs/get started/new parse app настроенная среда разработки для solidjs рекомендуем использовать visual studio code или любой предпочитаемый редактор, а также node js (версии 14 или выше) базовые знания solidjs, современного javascript и restful api освежите знания с помощью документации solidjs https //www solidjs com/docs при необходимости шаг 1 – инициализация проекта настройка вашего проекта back4app войдите в свою учетную запись back4app нажмите кнопку “новое приложение” на вашей панели управления назовите ваш проект basic crud app solidjs и следуйте инструкциям для завершения настройки создать новый проект после создания вашего проекта он появится на вашей панели управления, laying the foundation for your backend шаг 2 – создание вашей схемы данных проектирование структуры данных для этого crud приложения вы создадите несколько коллекций в вашем проекте back4app ниже приведены примеры основных коллекций и необходимых полей 1\ коллекция элементы эта коллекция хранит информацию о каждом элементе поле тип цель ид идентификатор объекта автоматически сгенерированный уникальный идентификатор название строка название предмета описание строка краткое описание предмета создано дата время, когда элемент был добавлен обновлено дата метка времени для последнего обновления 2\ сбор пользователи эта коллекция управляет учетными данными пользователей и данными аутентификации поле тип цель ид идентификатор объекта автоматически сгенерированный уникальный идентификатор имя пользователя строка уникальный идентификатор пользователя электронная почта строка уникальный адрес электронной почты хешпароля строка зашифрованный пароль для безопасного доступа создано дата время создания аккаунта обновлено дата метка времени для последнего обновления аккаунта вы можете создать эти коллекции и добавить поля через панель управления back4app создать новый класс чтобы добавить новое поле, выберите соответствующий тип данных, задайте имя поля, при необходимости установите значение по умолчанию и отметьте его как обязательное, если это необходимо создать колонку использование ai ассистента back4app для создания схемы интегрированный ai ассистент back4app может автоматически создать вашу схему данных на основе ваших инструкций, экономя ваше время и обеспечивая согласованность как использовать ai ассистента откройте ai ассистента получите доступ через настройки вашего проекта на панели управления back4app подробно опишите вашу модель данных введите подробное описание коллекций и полей, которые необходимы подтвердите настройку просмотрите предложенную схему и подтвердите, чтобы завершить конфигурацию пример запроса create two collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) этот метод на основе ии упрощает процесс создания вашей схемы, обеспечивая оптимизированную модель данных шаг 3 – активация панели администратора и управление операциями с данными введение в панель администратора панель администратора back4app предоставляет интерфейс без кода для эффективного управления бэкендом ее функции перетаскивания упрощают выполнение операций crud, таких как добавление, просмотр, обновление и удаление записей включение панели администратора перейдите в меню “дополнительно” в вашей панели управления back4app выберите “admin app” и нажмите “включить admin app ” настройте свои учетные данные администратора создав начальную учетную запись администратора это также установит необходимые роли (например, b4aadminuser ) и системные коллекции включить admin app после активации войдите в панель администратора, чтобы управлять данными вашего приложения панель управления admin app обработка операций crud в панели администратора внутри панели вы можете добавить записи используйте функцию «добавить запись» в любой коллекции (например, элементы), чтобы ввести новые данные просмотреть/изменить записи нажмите на запись, чтобы просмотреть или изменить ее детали удалить записи удалите устаревшие или нежелательные записи этот интерфейс упрощает управление данными, предлагая эффективный и интуитивно понятный опыт шаг 4 – подключение вашего приложения solidjs к back4app с установленным бэкендом следующим шагом является связывание вашего приложения solidjs с back4app вариант a использование parse javascript sdk установите parse javascript sdk запустите следующую команду в каталоге вашего проекта npm install parse настройте parse в вашем приложении создайте файл конфигурации (например, parseconfig js ) // parseconfig js import parse from 'parse'; parse initialize("your application id", "your javascript key"); parse serverurl = 'https //parseapi back4app com'; export default parse; 3\ implement crud operations in solidjs here’s an example solidjs service for managing items ```javascript // itemsservice js import parse from ' /parseconfig'; export const fetchitems = async () => { try { const items = parse object extend("items"); const query = new parse query(items); const results = await query find(); return results; } catch (error) { console error("error retrieving items ", error); } }; export const additem = async (title, description) => { const items = parse object extend("items"); const item = new items(); item set("title", title); item set("description", description); try { await item save(); console log("item added successfully "); } catch (error) { console error("error adding item ", error); } }; export const updateitem = async (objectid, newtitle, newdescription) => { const items = parse object extend("items"); const query = new parse query(items); try { const item = await query get(objectid); item set("title", newtitle); item set("description", newdescription); await item save(); console log("item updated successfully "); } catch (error) { console error("error updating item ", error); } }; export const deleteitem = async (objectid) => { const items = parse object extend("items"); const query = new parse query(items); try { const item = await query get(objectid); await item destroy(); console log("item deleted successfully "); } catch (error) { console error("error deleting item ", error); } }; вариант b использование rest или graphql api если вы предпочитаете не использовать parse sdk, вы можете выполнять операции crud через rest например, вот как получить элементы с помощью rest api export const fetchitemsrest = async () => { try { const response = await fetch("https //parseapi back4app com/classes/items", { method "get", headers { "x parse application id" "your application id", "x parse rest api key" "your rest api key", }, }); const data = await response json(); return data results; } catch (error) { console error("error fetching items via rest ", error); } }; интегрируйте эти api вызовы в ваши компоненты solidjs по мере необходимости шаг 5 – улучшение безопасности бэкенда настройка списков контроля доступа (acl) защитите свои данные, настроив acl для каждого объекта например, чтобы ограничить доступ к элементу так, чтобы только его владелец мог к нему получить доступ import parse from ' /parseconfig'; export const addprivateitem = async (title, description, owner) => { const items = parse object extend("items"); const item = new items(); item set("title", title); item set("description", description); const acl = new parse acl(); acl setreadaccess(owner, true); acl setwriteaccess(owner, true); acl setpublicreadaccess(false); acl setpublicwriteaccess(false); item setacl(acl); try { await item save(); console log("private item added "); } catch (error) { console error("error saving private item ", error); } }; настройка разрешений на уровне класса (clp) настройте clp в вашей панели управления back4app, чтобы установить стандартные ограничения доступа, обеспечивая, чтобы только авторизованные пользователи могли взаимодействовать с определенными коллекциями шаг 6 – реализация аутентификации пользователей управление учетными записями пользователей back4app использует встроенную коллекцию пользователей parse для аутентификации в вашем приложении solidjs обрабатывайте регистрацию и вход пользователей следующим образом import parse from ' /parseconfig'; export const registeruser = async (username, password, email) => { const user = new parse user(); user set("username", username); user set("password", password); user set("email", email); try { await user signup(); console log("user registered successfully!"); } catch (error) { console error("registration error ", error); } }; export const loginuser = async (username, password) => { try { const user = await parse user login(username, password); console log("logged in as ", user get("username")); } catch (error) { console error("login error ", error); } }; аналогичную стратегию можно использовать для управления сессиями, сброса паролей и других функций аутентификации шаг 7 – развертывание вашего приложения solidjs back4app упрощает процесс развертывания вы можете развернуть ваше приложение solidjs различными способами, включая docker 7 1 подготовка вашего приложения соберите ваше приложение используйте ваш менеджер пакетов для компиляции вашего приложения solidjs например npm run build проверьте вывод сборки убедитесь, что папка сборки содержит все необходимые файлы 7 2 организация структуры вашего проекта типичная структура проекта может выглядеть так basic crud app solidjs/ \| public/ \| | index html \| src/ \| | components/ \| | | app jsx \| | services/ \| | | parseconfig js \| | | itemsservice js \| | | authservice js \| | index jsx \| package json \| readme md 7 3 dockerизация вашего приложения если вы хотите контейнеризировать ваше приложение, создайте dockerfile в корне проекта \# use a lightweight node image from node 16 alpine \# set the working directory workdir /app \# copy package files and install dependencies copy package json package lock json / run npm install \# copy the rest of the application code copy \# build the application run npm run build \# expose the port (adjust if needed) expose 3000 \# serve the built application cmd \["npx", "serve", "build"] 7 4 развертывание с помощью back4app web deployment подключите ваш репозиторий git убедитесь, что ваш проект solidjs размещен на github настройте развертывание в вашей панели управления back4app выберите web deployment , свяжите ваш репозиторий (например, basic crud app solidjs ), и выберите соответствующую ветку установите команды сборки определите команду сборки (например, npm run build ) и укажите выходной каталог разверните ваше приложение нажмите deploy и следите за журналами, пока ваше приложение не станет доступным шаг 8 – заключительные мысли и будущие улучшения отличная работа! вы успешно создали приложение crud на solidjs, интегрированное с back4app вы настроили проект под названием basic crud app solidjs , определили свои коллекции items и users и управляли данными через панель администратора back4app кроме того, вы подключили свое приложение solidjs с помощью parse javascript sdk (или rest/graphql) и применили надежные меры безопасности следующие шаги расширьте приложение добавьте расширенные функции, такие как фильтры поиска, детальные представления элементов или обновления данных в реальном времени улучшите бэкенд экспериментируйте с облачными функциями, интеграциями сторонних api или управлением доступом на основе ролей узнайте больше погрузитесь в документацию back4app https //www back4app com/docs и дополнительные учебники по solidjs, чтобы еще больше улучшить ваше приложение счастливого кодирования и удачи с вашим проектом crud на solidjs!