Quickstarters
CRUD Samples
How to Build a CRUD App with Node.js?
33 мин
обзор в этом руководстве вы научитесь разрабатывать полное crud (создание, чтение, обновление, удаление) приложение с использованием node js мы будем использовать back4app в качестве нашего серверного решения для упрощения управления данными это руководство проведет вас через настройку проекта back4app, проектирование динамической модели данных и реализацию операций crud с использованием node js сначала вы создадите проект back4app с именем basic crud app node который предоставляет надежное, нереляционное решение для хранения данных затем вы разработаете свою схему данных, определив коллекции и поля либо вручную, либо с помощью ai агента back4app далее вы будете управлять своим сервером через приложение администратора back4app — удобный интерфейс с функцией перетаскивания для манипуляции данными наконец, вы интегрируете свое приложение node js с back4app, используя parse javascript sdk (или rest/graphql api по мере необходимости), обеспечивая при этом безопасный контроль доступа к концу этого учебника вы создадите готовое к производству приложение на node js, способное выполнять основные операции crud вместе с аутентификацией пользователей и безопасностью данных что вы узнаете как создать приложение crud на базе node js с эффективным бэкендом с низким кодом стратегии проектирования масштабируемого бэкенда и его подключения к вашему приложению на node js как использовать приложение back4app admin для упрощенных операций создания, чтения, обновления и удаления техники развертывания, включая контейнеризацию docker, для эффективного запуска вашего приложения на node js предварительные требования перед тем как начать, убедитесь, что у вас есть аккаунт back4app с только что настроенным проектом нужна помощь? посетите начало работы с back4app https //www back4app com/docs/get started/new parse app настройка разработки node js используйте редактор кода, такой как visual studio code, и убедитесь, что установлен node js (версии 14 или выше) базовые знания node js, асинхронного программирования и rest api обратитесь к документации node js https //nodejs org/en/docs/ при необходимости шаг 1 – настройка вашего проекта создание нового проекта back4app войдите в свою учетную запись back4app нажмите на кнопку “новое приложение” на вашей панели управления назовите ваш проект basic crud app node и следуйте инструкциям на экране, чтобы завершить настройку создать новый проект после создания ваш проект появится на вашей панели управления, готовый к настройке бэкенда шаг 2 – создание вашей схемы данных определение ваших структур данных для этого crud приложения вы создадите несколько коллекций в вашем проекте back4app ниже приведены примеры ключевых коллекций и полей, необходимых для базовой функциональности crud 1\ коллекция элементов эта коллекция хранит информацию о каждом элементе поле тип описание ид идентификатор объекта автоматически сгенерированный уникальный идентификатор название строка название элемента описание строка краткий обзор предмета создано дата метка времени, указывающая, когда элемент был добавлен обновлено дата метка времени, указывающая на последнее обновление 2\ коллекция пользователей эта коллекция обрабатывает учетные данные пользователей и данные аутентификации поле тип описание ид идентификатор объекта автоматически сгенерированный уникальный идентификатор имя пользователя строка уникальное имя для пользователя электронная почта строка уникальный адрес электронной почты пользователя хешпароля строка хэшированный пароль для безопасной аутентификации создано дата время, когда была создана учетная запись обновлено дата время, когда аккаунт был обновлён вы можете создать эти коллекции и поля вручную через панель управления back4app создать новый класс вы можете добавлять столбцы, выбирая тип данных, задавая имя поля, устанавливая значения по умолчанию и отмечая их как обязательные создать колонку использование ai агента back4app для генерации схемы ai агент back4app упрощает настройку схемы, автоматически генерируя вашу модель данных на основе вашего описания это ускоряет конфигурацию и гарантирует, что ваши структуры данных поддерживают все операции crud как использовать ai агента откройте ai агента получите доступ к ai агенту из настроек вашего проекта back4app определите вашу схему данных опишите коллекции и поля, которые вам нужны просмотрите и примените ai агент предложит схему просмотрите предложение и примените изменения пример запроса create the following 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 – включение админ приложения и выполнение операций crud обзор админ приложения админ приложение back4app предоставляет интерфейс без кода для управления вашими данными на сервере его дизайн с перетаскиванием делает простым выполнение задач crud, таких как добавление, просмотр, обновление и удаление записей активация админ приложения перейдите в раздел “дополнительно” в вашей панели управления back4app выберите “админ приложение” и нажмите “включить админ приложение ” настройте свои учетные данные администратора , создав свою первоначальную учетную запись администратора этот процесс также создаст роли (например, b4aadminuser ) и системные классы включить админ приложение после активации войдите в админ приложение, чтобы управлять своими данными панель управления админ приложением управление операциями crud с помощью админ приложения внутри приложения администратора вы можете вставить записи используйте кнопку “добавить запись” в коллекции (например, товары), чтобы создать новые записи просмотреть и отредактировать записи нажмите на любую запись, чтобы просмотреть ее детали или обновить ее поля удалить записи удалите записи, которые больше не нужны этот удобный интерфейс значительно упрощает управление данными шаг 4 – связывание вашего приложения node js с back4app с настроенным бэкендом пришло время подключить ваше приложение node js к back4app вариант a использование parse javascript sdk установите sdk javascript parse запустите следующую команду в каталоге вашего проекта npm install parse инициализируйте parse в вашем приложении node js создайте файл конфигурации (например, parseconfig js ) // parseconfig js const parse = require('parse/node'); parse initialize('your application id', 'your javascript key'); parse serverurl = 'https //parseapi back4app com'; module exports = parse; 3\ implement crud operations for example, create a service to manage items ```javascript // itemsservice js const parse = require(' /parseconfig'); async function fetchitems() { const items = parse object extend('items'); const query = new parse query(items); try { const results = await query find(); console log('fetched items ', results); return results; } catch (error) { console error('error retrieving items ', error); } } async function createitem(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 successfully created '); } catch (error) { console error('error creating item ', error); } } async function updateitem(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); } } async function deleteitem(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); } } module exports = { fetchitems, createitem, updateitem, deleteitem, }; вариант b использование rest или graphql если вы предпочитаете не использовать parse sdk, вы можете взаимодействовать с back4app через вызовы rest api например, вот как получить элементы, используя node js const https = require('https'); function fetchitemsrest() { const options = { hostname 'parseapi back4app com', path '/classes/items', method 'get', headers { 'x parse application id' 'your application id', 'x parse rest api key' 'your rest api key' } }; const req = https request(options, res => { let data = ''; res on('data', chunk => data += chunk); res on('end', () => console log('response ', data)); }); req on('error', error => console error('error ', error)); req end(); } fetchitemsrest(); интегрируйте эти rest вызовы в ваши сервисы node js по мере необходимости шаг 5 – укрепление безопасности вашего бэкенда настройка списков контроля доступа (acl) улучшите безопасность ваших данных, установив acl на ваши объекты например, чтобы сделать элемент доступным только для его создателя const parse = require(' /parseconfig'); async function createprivateitem(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 created successfully '); } catch (error) { console error('error saving private item ', error); } } настройка разрешений на уровне класса (clp) настройте clp в вашей панели управления back4app, чтобы обеспечить соблюдение стандартных правил безопасности, гарантируя, что только аутентифицированные пользователи могут взаимодействовать с конкретными коллекциями шаг 6 – реализация аутентификации пользователей настройка управления пользователями back4app использует встроенную коллекцию пользователей parse для управления аутентификацией в вашем приложении node js реализуйте регистрацию и вход пользователей, как показано ниже const parse = require(' /parseconfig'); async function signup(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('error during sign up ', error); } } async function login(username, password) { try { const user = await parse user login(username, password); console log('user logged in ', user get('username')); } catch (error) { console error('login error ', error); } } module exports = { signup, login }; аналогичный подход можно использовать для управления сессиями и дополнительных функций аутентификации шаг 7 – развертывание вашего приложения node js back4app предоставляет плавный процесс развертывания вы можете развернуть ваше приложение node js, используя несколько методов, включая контейнеризацию docker 7 1 создание вашего приложения компиляция и упаковка используйте ваш предпочитаемый инструмент сборки (например, npm или yarn) для подготовки вашего приложения например, выполните npm run build проверьте вашу сборку убедитесь, что ваш производственный пакет содержит все необходимые модули и файлы 7 2 организация структуры вашего проекта типичная структура проекта node js может выглядеть следующим образом basic crud app node/ \| src/ \| | controllers/ \| | | itemscontroller js \| | | authcontroller js \| | models/ \| | | item js \| | | user js \| | routes/ \| | itemsroutes js \| | authroutes js \| parseconfig js \| package json \| readme md 7 3 dockerизация вашего приложения node js если вы предпочитаете контейнерное развертывание, добавьте dockerfile в корень вашего проекта \# use an official node js runtime as a parent image from node 14 alpine \# set the working directory workdir /usr/src/app \# copy package files and install dependencies copy package json / run npm install \# copy the rest of the application code copy \# expose the application port (adjust if necessary) expose 3000 \# start the node js application cmd \["npm", "start"] 7 4 развертывание через back4app web deployment подключите ваш репозиторий github размещайте исходный код node js на github настройте параметры развертывания в вашей панели управления back4app выберите web deployment опцию, свяжите ваш репозиторий (например, basic crud app node ), и выберите нужную ветку установите команды сборки и вывода определите вашу команду сборки (например, npm run build ) и укажите папку вывода разверните ваше приложение нажмите deploy и следите за логами, пока ваше приложение не станет доступным шаг 8 – завершение и будущие улучшения поздравляем! вы теперь создали приложение crud на node js, интегрированное с back4app вы настроили проект под названием basic crud app node , создали коллекции для элементов и пользователей и управляли своим бэкендом с помощью приложения back4app admin кроме того, вы подключили свое приложение node js через parse javascript sdk (или rest/graphql) и реализовали надежные меры безопасности следующие шаги улучшите свое приложение рассмотрите возможность добавления таких функций, как расширенная фильтрация, детализированные представления или обновления в реальном времени расширьте возможности бэкенда изучите облачные функции, интеграции с api третьих сторон или управление доступом на основе ролей углубите свои знания посмотрите документацию back4app https //www back4app com/docs и дополнительные учебные материалы, чтобы еще больше улучшить свое приложение счастливого кодирования и удачи в вашем пути с приложением crud на node js!