Quickstarters
CRUD Samples
How to Create a CRUD Application with Koa.js?
37 мин
введение в этом руководстве вы узнаете, как разработать приложение crud (создание, чтение, обновление, удаление) с использованием koa js этот учебник проведет вас через основные шаги управления данными и построения функционального api, интегрируя ваш бэкенд koa js с back4app вы начнете с настройки проекта back4app под названием basic crud app koajs , который служит мощным бэкендом для вашего приложения затем вы разработаете гибкую схему базы данных, создавая коллекции и определяя поля — либо вручную, либо с помощью ai агента back4app эта настройка гарантирует, что ваши данные организованы для плавных операций crud далее вы воспользуетесь приложением back4app admin app, инструментом без кода с функцией перетаскивания, который упрощает задачи управления данными, такие как создание, чтение, обновление и удаление записей наконец, вы настроите свой сервер koa js для взаимодействия с back4app через rest api, при этом реализуя надежные средства контроля доступа для защиты вашего бэкенда к концу этого учебника вы создадите готовое к производству серверное приложение, которое не только поддерживает основные операции crud, но и включает аутентификацию пользователей и безопасное управление данными основные выводы узнайте, как создавать crud приложения с koa js, используя надежный облачный бэкенд получите представление о проектировании масштабируемого бэкенда и интеграции его с restful api научитесь использовать интуитивно понятное приложение back4app admin для упрощения операций crud изучите стратегии развертывания, включая контейнеризацию с docker, чтобы быстро запустить ваше приложение koa js предварительные требования перед тем как начать, убедитесь, что у вас есть следующее аккаунт back4app с активным проектом посмотрите начало работы с back4app https //www back4app com/docs/get started/new parse app для получения рекомендаций рабочая среда разработки node js установите node js (версии 14 или выше) и настройте ваш проект koa js базовые знания javascript, koa js и rest api при необходимости ознакомьтесь с документацией koa js https //koajs com/ шаг 1 – настройка вашего проекта back4app создание нового проекта back4app войдите в свою учетную запись back4app нажмите на кнопку “новое приложение” на вашей панели управления назовите ваш проект basic crud app koajs и следуйте инструкциям для завершения настройки создать новый проект после того как ваш проект будет создан, он станет видимым на вашей панели управления, предоставляя необходимую бэкенд структуру для вашего приложения шаг 2 – создание схемы базы данных проектирование вашей модели данных для этого crud приложения вам нужно будет настроить несколько коллекций ниже приведены образцы коллекций с предложенными полями и типами, чтобы помочь вам эффективно настроить схему вашей базы данных 1\ коллекция предметов эта коллекция содержит детали для каждого элемента поле тип описание ид идентификатор объекта автоматически сгенерированный уникальный идентификатор название строка название элемента описание строка краткое описание предмета создано в дата время создания элемента обновлено дата метка времени для самого последнего обновления 2\ коллекция пользователей эта коллекция управляет данными пользователей и учетными данными для аутентификации поле тип описание ид идентификатор объекта автоматически сгенерированный первичный ключ имя пользователя строка уникальное имя пользователя для пользователя электронная почта строка уникальный адрес электронной почты пользователя хэш пароля строка безопасно захешированный пароль создано в дата время создания аккаунта обновлено дата время последнего обновления аккаунта вы можете создать эти коллекции через панель управления back4app, добавив новый класс для каждой и определив соответствующие столбцы создать новый класс вы можете определить поля, выбрав соответствующий тип, установив значения по умолчанию и указав, является ли поле обязательным создать колонку использование ai агента back4app для настройки схемы ai агент back4app, доступный в вашей панели управления, может автоматически сгенерировать схему вашей базы данных на основе подробного запроса, описывающего ваши коллекции и поля эта функция ускоряет настройку проекта и обеспечивает согласованную схему для операций crud как использовать ai агента откройте ai агента из вашей панели управления back4app или в настройках проекта предоставьте описательный запрос, outlining коллекции и поля, которые вам нужны просмотрите сгенерированную схему и примените конфигурацию к вашему проекту пример запроса create these collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) этот подход экономит время и помогает обеспечить, чтобы ваша схема была как последовательной, так и оптимизированной шаг 3 – активация приложения администратора и функциональности crud обзор приложения администратора приложение администратора back4app – это удобный интерфейс, который позволяет вам легко управлять вашими данными на сервере с помощью управления перетаскиванием этот инструмент без кода упрощает операции, такие как создание, чтение, обновление и удаление записей активация приложения администратора перейдите в меню «дополнительно» на вашей панели управления back4app выберите «приложение администратора» и нажмите на «включить приложение администратора» настройте свою начальную учетную запись администратора; этот процесс устанавливает системные роли, такие как b4aadminuser и подготавливает системные коллекции включить приложение администратора после активации войдите в приложение администратора, чтобы управлять вашими коллекциями и записями панель управления приложения администратора в приложении администратора вы можете добавить новые записи используйте кнопку «добавить запись» в любой коллекции (например, товары), чтобы создать новые записи просмотреть и редактировать записи выберите запись, чтобы просмотреть ее детали или изменить ее поля удалить записи удалите записи, которые больше не нужны шаг 4 – подключение вашего koa js бэкенда к back4app теперь, когда ваш бэкенд настроен и управляется, пришло время настроить ваш koa js сервер для взаимодействия с back4app использование rest api с koa js этот учебник продемонстрирует, как использовать вызовы rest api с вашего koa js сервера для выполнения операций crud с вашими коллекциями back4app настройка базового koa js сервера установите koa js и необходимые промежуточные программы npm install koa koa router koa bodyparser node fetch создайте файл сервера (например, server js ) // server js const koa = require('koa'); const router = require('koa router'); const bodyparser = require('koa bodyparser'); const fetch = require('node fetch'); const app = new koa(); const router = new router(); const application id = 'your application id'; const rest api key = 'your rest api key'; const base url = 'https //parseapi back4app com'; // fetch all items router get('/items', async (ctx) => { try { const response = await fetch(`${base url}/classes/items`, { headers { 'x parse application id' application id, 'x parse rest api key' rest api key } }); const data = await response json(); ctx body = data results; } catch (error) { ctx status = 500; ctx body = { error 'failed to fetch items' }; } }); // create a new item router post('/items', async (ctx) => { const { title, description } = ctx request body; try { const response = await fetch(`${base url}/classes/items`, { method 'post', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json' }, body json stringify({ title, description }) }); const newitem = await response json(); ctx body = newitem; } catch (error) { ctx status = 500; ctx body = { error 'error creating item' }; } }); // update an item router put('/items/\ id', async (ctx) => { const { id } = ctx params; const { title, description } = ctx request body; try { const response = await fetch(`${base url}/classes/items/${id}`, { method 'put', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json' }, body json stringify({ title, description }) }); const updateditem = await response json(); ctx body = updateditem; } catch (error) { ctx status = 500; ctx body = { error 'error updating item' }; } }); // delete an item router delete('/items/\ id', async (ctx) => { const { id } = ctx params; try { await fetch(`${base url}/classes/items/${id}`, { method 'delete', headers { 'x parse application id' application id, 'x parse rest api key' rest api key } }); ctx body = { message 'item deleted successfully' }; } catch (error) { ctx status = 500; ctx body = { error 'error deleting item' }; } }); app use(bodyparser()); app use(router routes()) use(router allowedmethods()); const port = process env port || 3000; app listen(port, () => { console log(`server is running on port ${port}`); }); эта настройка дает вам сервер koa js, который взаимодействует с back4app через rest вызовы, обрабатывая все операции crud шаг 5 – защита вашего бэкенда реализация контроля доступа защитите свои данные, применяя списки контроля доступа (acl) на уровне объектов например, при создании приватного элемента установите acl, чтобы ограничить доступ async function createsecureitem(itemdata, ownersessiontoken) { try { const response = await fetch(`${base url}/classes/items`, { method 'post', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json', 'x parse session token' ownersessiontoken }, body json stringify({ title itemdata title, description itemdata description, acl { " " { "read" false, "write" false }, "owner" { "read" true, "write" true } } }) }); const result = await response json(); console log('secure item created ', result); } catch (error) { console error('error creating secure item ', error); } } настройка разрешений на уровне класса (clp) в вашей панели управления back4app настройте clp для каждой коллекции, чтобы установить правила по умолчанию, обеспечивая доступ к конфиденциальным данным только для авторизованных пользователей шаг 6 – аутентификация пользователей настройка учетных записей пользователей back4app использует класс пользователей для обработки аутентификации в вашем сервере koa js управляйте регистрацией и входом пользователей, взаимодействуя с rest api back4app пример конечная точка регистрации пользователя router post('/signup', async (ctx) => { const { username, password, email } = ctx request body; try { const response = await fetch(`${base url}/users`, { method 'post', headers { 'x parse application id' application id, 'x parse rest api key' rest api key, 'content type' 'application/json' }, body json stringify({ username, password, email }) }); const userdata = await response json(); ctx body = userdata; } catch (error) { ctx status = 500; ctx body = { error 'error signing up' }; } }); вы можете создать аналогичные конечные точки для входа и управления сессиями по мере необходимости шаг 7 – развертывание вашего приложения koa js функция веб развертывания back4app позволяет вам размещать ваш сервер koa js, связывая его с вашим репозиторием на github 7 1 – создайте и организуйте свой проект убедитесь, что ваш проект правильно структурирован пример структуры может быть следующим basic crud app koajs/ ├── node modules/ ├── server js ├── package json └── readme md закоммитьте все ваши исходные файлы в репозиторий git примеры команд git git init git add git commit m "initial commit of koa js backend" git remote add origin https //github com/your username/basic crud app koajs git git push u origin main 7 2 – интеграция с веб развертыванием back4app войдите в свою панель управления back4app, откройте свой проект basic crud app koajs , и перейдите в раздел веб развертывание подключите свою учетную запись github, если вы этого еще не сделали выберите свой репозиторий и соответствующую ветку (например, main ) 7 3 – настройте параметры развертывания команда сборки если ваш проект требует сборки (например, транспиляции современного javascript), укажите команду сборки, такую как npm run build каталог вывода укажите папку, содержащую ваши готовые к производству файлы, если это применимо переменные окружения добавьте любые необходимые переменные окружения (например, ключи api) в конфигурацию развертывания 7 4 – дополнительно докеризуйте ваш сервер koa js если вы хотите развернуть ваше приложение как контейнер, включите dockerfile в ваш репозиторий \# use the official node js image as a base from node 16 alpine \# set the working directory workdir /app \# copy package files and install dependencies copy package json / run npm install \# copy the rest of the application code copy \# expose the desired port expose 3000 \# run the application cmd \["node", "server js"] 7 5 – запустите ваше приложение нажмите кнопку развернуть на back4app следите за журналами развертывания, чтобы убедиться, что ваше приложение собрано и развернуто успешно после завершения back4app предоставит url, по которому ваш сервер koa js будет доступен 7 6 – проверьте ваше развертывание перейдите по предоставленному url, чтобы убедиться, что ваше приложение работает проверьте каждую конечную точку (операции crud, аутентификация пользователей), чтобы подтвердить правильную работу если возникнут проблемы, проверьте ваши журналы и настройки развертывания для устранения неполадок шаг 8 – заключение и будущие улучшения отличная работа! теперь вы создали полностью функциональное crud приложение с использованием koa js, интегрированное с back4app ваш проект basic crud app koajs включает тщательно разработанные коллекции для элементов и пользователей, удобное админ приложение для управления данными и безопасный бэкенд следующие шаги расширьте ваш api улучшите ваш сервер koa js, добавив дополнительные маршруты, промежуточное по или даже функции в реальном времени улучшите аутентификацию рассмотрите возможность реализации аутентификации на основе токенов, социальных входов или многофакторной проверки изучите дополнительную документацию посмотрите документацию back4app https //www back4app com/docs и руководства koa js https //koajs com/ для более продвинутых тем и оптимизаций следуя этому руководству, вы теперь обладаете навыками для создания масштабируемого, безопасного и эффективного crud бэкенда с koa js и back4app наслаждайтесь