Quickstarters
Wie man ein Gatsby-Frontend erstellt und es mit einem Backend verbindet?
33 min
in diesem tutorial erstellen sie eine to do listen anwendung mit gatsby und verbinden sie mit einem robusten backend, das von back4app bereitgestellt wird dieser leitfaden ist ideal für diejenigen, die grundlegende crud (create, read, update, delete) operationen in eine schnelle, statische website integrieren möchten am ende haben sie eine voll funktionsfähige app, die zeigt, wie man die backend dienste von back4app nutzt, während man gatsby für ein blitzschnelles frontend verwendet der aufbau einer full stack anwendung kann herausfordernd sein, mit komplexitäten wie backend setup, datenbankverwaltung, authentifizierung und bereitstellung um diesen prozess zu optimieren, verwenden wir back4app—eine skalierbare backend as a service (baas) lösung —damit sie sich auf den aufbau ihrer gatsby website konzentrieren können, während es das hosting, die datenbanken und die apis verwaltet back4app bietet eine umfassende suite von backend diensten, einschließlich einer sofort einsatzbereiten datenbank, authentifizierung, cloud code für serverseitige logik und nahtlose sdk integrationen die unterstützung für containerisierte bereitstellungen macht es zu einer ausgezeichneten option für moderne full stack anwendungen mit diesen werkzeugen können sie anwendungen schnell entwickeln und bereitstellen, ohne die serverinfrastruktur verwalten zu müssen wichtige erkenntnisse indem sie dieses tutorial befolgen, werden sie lernen ein modernes gatsby projekt zu initialisieren einen backend service zu integrieren, um die daten ihrer anwendung zu verwalten kern crud operationen für eine interaktive benutzererfahrung zu implementieren eine vollständig funktionale to do liste anwendung mit containerisierten workflows auf back4app bereitzustellen voraussetzungen stellen sie sicher, dass sie folgendes haben, bevor sie beginnen node js und npm installieren sie die neueste lts version von node js von nodejs org https //nodejs org/ und überprüfen sie dies, indem sie node v und npm v in ihrem terminal ausführen grundkenntnisse in gatsby vertrautheit mit react, graphql und der datenebene von gatsby wird erwartet wenn sie neu bei gatsby sind, sollten sie zunächst die grundlagen überprüfen ein back4app konto melden sie sich bei back4app https //www back4app com/ an, um ihre backend services einzurichten und zu verwalten mit diesen voraussetzungen sind sie bereit, ihr projekt einzurichten und mit dem bau zu beginnen projektsetup beginnen sie mit der einrichtung ihrer lokalen entwicklungsumgebung und der initialisierung ihres gatsby projekts überprüfen sie, ob node js (lts version) installiert ist falls erforderlich, laden sie es von nodejs org https //nodejs org/ überprüfen sie ihre installation node v npm v erstellen sie ein neues gatsby projekt mit dem gatsby cli führen sie den folgenden befehl aus (ersetzen sie todo app durch ihren gewünschten projektnamen) npx gatsby new todo app wechseln sie in ihr projektverzeichnis cd todo app starten sie den entwicklungsserver, um die einrichtung zu überprüfen npx gatsby develop ihre gatsby website sollte jetzt lokal laufen öffnen sie die bereitgestellte url in ihrem browser, um dies zu bestätigen als nächstes richten sie ihr backend auf back4app ein, um die datenspeicherung und api interaktionen zu verwalten erstellen des todo backends back4app bietet einen vollständig verwalteten backend service, der von parse , unterstützt wird und eine nosql datenbank, authentifizierung, cloud code und automatisch generierte apis direkt out of the box bietet dieser abschnitt wird sie durch die erstellung eines task datenmodells führen, um ihre aufgaben zu speichern und es mit ihrem gatsby frontend zu verbinden einrichten ihrer backend anwendung melden sie sich an bei ihrem back4app dashboard https //www back4app com/ und klicken sie auf "erstellen sie eine neue app " benennen sie ihre anwendung (zum beispiel, todogatsbyapp ) und wählen sie nodejs/parse als backend typ sobald die app erstellt ist, navigieren sie zu "datenbank" > "browser" klicken sie auf "eine klasse erstellen" und wählen sie "benutzerdefiniert" benennen sie die klasse task und setzen sie die klassenberechtigungen so, dass öffentliches lesen und schreiben erlaubt ist (sie können diese einstellungen später verfeinern) fügen sie in der task klasse die folgenden felder hinzu titel (string) – der titel der aufgabe beschreibung (string) – einzelheiten zur aufgabe abgeschlossen (boolean) – gibt an, ob die aufgabe abgeschlossen ist fälligkeitsdatum (datum) – der abgabetermin für die aufgabe klicken sie auf "speichern" um ihr schema abzuschließen integration von back4app mit gatsby integrieren sie back4app in ihr gatsby projekt mit dem parse javascript sdk installieren sie das sdk über npm npm install parse konfigurieren sie das sdk, indem sie es mit ihrer anwendungs id und javascript schlüssel holen sie sich diese anmeldeinformationen von ihrem back4app dashboard unter app einstellungen > sicherheit & schlüssel erstellen sie in ihrem projekt eine datei (zum beispiel, src/utils/parse config js ) und fügen sie die folgende konfiguration hinzu // src/utils/parse config js import parse from "parse/dist/parse min js"; const parse app id = 'your application id'; const parse js key = 'your javascript key'; const parse server url = 'https //parseapi back4app com/'; parse initialize(parse app id, parse js key); parse serverurl = parse server url; export default parse; sie können diese konfiguration jetzt in ihre gatsby seiten und komponenten importieren, um mit ihrem backend zu interagieren entwicklung des frontends mit gatsby jetzt, da ihr backend verbunden ist, erstellen sie die benutzeroberfläche für ihre to do listen anwendung mit gatsby sie werden seiten und komponenten erstellen, um aufgaben hinzuzufügen, anzuzeigen, zu aktualisieren und zu löschen, während sie react und graphql nutzen organisieren ihrer komponenten ihre anwendung wird die folgenden hauptkomponenten enthalten taskform js – verwaltet das hinzufügen neuer aufgaben tasklist js – zeigt alle aufgaben an und bietet steuerungen zum markieren von aufgaben als abgeschlossen oder zum löschen taskitem js – stellt eine einzelne aufgabe dar mit aktionen zum umschalten des abschlusses oder zum entfernen erstellen sie einen components ordner innerhalb von src und fügen sie diese dateien hinzu mkdir src/components touch src/components/taskform js src/components/tasklist js src/components/taskitem js verwalten des zustands mit react hooks verwenden sie react hooks ( usestate und useeffect ) für die zustandsverwaltung und nebeneffekte richten sie den zustand auf ihrer hauptseite (z b src/pages/index js ), wie folgt ein // src/pages/index js import react, { usestate, useeffect } from "react"; import parse from " /utils/parse config"; import taskform from " /components/taskform"; import tasklist from " /components/tasklist"; const indexpage = () => { const \[tasks, settasks] = usestate(\[]); const fetchtasks = async () => { try { const task = parse object extend("task"); const query = new parse query(task); const results = await query find(); settasks(results map(task => ({ id task id, task tojson() }))); } catch (error) { console error("error fetching tasks ", error); } }; useeffect(() => { fetchtasks(); }, \[]); return ( \<div classname="container"> \<h1>to do list\</h1> \<taskform fetchtasks={fetchtasks} /> \<tasklist tasks={tasks} fetchtasks={fetchtasks} /> \</div> ); }; export default indexpage; erstellen der aufgabenformular komponente in taskform js , erstellen sie ein kontrolliertes formular zum hinzufügen von aufgaben verwenden sie usestate zur verwaltung der eingabewerte und senden sie die daten an back4app // src/components/taskform js import react, { usestate } from "react"; import parse from " /utils/parse config"; const taskform = ({ fetchtasks }) => { const \[title, settitle] = usestate(""); const \[description, setdescription] = usestate(""); const handlesubmit = async (e) => { e preventdefault(); try { const task = parse object extend("task"); const task = new task(); task set("title", title); task set("description", description); task set("completed", false); await task save(); fetchtasks(); settitle(""); setdescription(""); } catch (error) { console error("error adding task ", error); } }; return ( \<form onsubmit={handlesubmit}> \<input type="text" placeholder="task title" value={title} onchange={(e) => settitle(e target value)} required /> \<input type="text" placeholder="description" value={description} onchange={(e) => setdescription(e target value)} required /> \<button type="submit">add task\</button> \</form> ); }; export default taskform; anzeigen der aufgabenliste in tasklist js , rendern sie die liste der aufgaben, indem sie durch das aufgaben array iterieren und die taskitem komponente verwenden // src/components/tasklist js import react from "react"; import taskitem from " /taskitem"; const tasklist = ({ tasks, fetchtasks }) => { return ( \<div> {tasks length === 0 ? ( \<p>no tasks available\</p> ) ( tasks map(task => ( \<taskitem key={task id} task={task} fetchtasks={fetchtasks} /> )) )} \</div> ); }; export default tasklist; erstellen der task item komponente in taskitem js , erstellen sie eine komponente, die es ihnen ermöglicht, eine aufgabe als abgeschlossen zu markieren oder sie zu löschen // src/components/taskitem js import react from "react"; import parse from " /utils/parse config"; const taskitem = ({ task, fetchtasks }) => { const handlecomplete = async () => { try { const query = new parse query("task"); const tasktoupdate = await query get(task id); tasktoupdate set("completed", !task completed); await tasktoupdate save(); fetchtasks(); } catch (error) { console error("error updating task ", error); } }; const handledelete = async () => { try { const query = new parse query("task"); const tasktodelete = await query get(task id); await tasktodelete destroy(); fetchtasks(); } catch (error) { console error("error deleting task ", error); } }; return ( \<div classname={`task item ${task completed ? "completed" ""}`}> \<h3>{task title}\</h3> \<p>{task description}\</p> \<button onclick={handlecomplete}> {task completed ? "undo" "complete"} \</button> \<button onclick={handledelete}>delete\</button> \</div> ); }; export default taskitem; styling ihrer anwendung erstellen sie eine styles css datei im src ordner mit grundlegenden stilen / src/styles css / container { max width 600px; margin 40px auto; padding 0 20px; text align center; font family sans serif; } container h1 { margin bottom 20px; } form { display flex; flex direction column; align items center; gap 10px; margin bottom 20px; } form input\[type="text"] { width 80%; max width 400px; padding 8px; box sizing border box; font size 1rem; } form button { padding 8px 16px; cursor pointer; font size 1rem; border none; background color #eaeaea; transition background color 0 2s ease; } form button\ hover { background color #ccc; } container p { font size 1rem; } task item { display flex; flex direction column; align items center; justify content center; gap 12px; border 1px solid #ccc; border radius 6px; padding 15px; margin 10px 0; background color #fafafa; text align center; transition background color 0 2s ease; } task item completed h3, task item completed p { text decoration line through; color #888; } task item h3 { margin 0; font size 1 1rem; } task item p { margin 0; font size 1rem; } task item button { padding 6px 12px; border none; background color #eaeaea; cursor pointer; font size 0 9rem; } task item button\ hover { background color #ccc; } @media (min width 600px) { task item { flex direction row; } } importieren sie dieses css in ihr gatsby layout oder ihre seite (zum beispiel in gatsby browser js ) // gatsby browser js import " /src/styles css"; ui abschließen ihre gatsby to do liste anwendung verfügt jetzt über ein dynamisches frontend, das mit back4app und benutzerdefiniertem styling integriert ist die app ermöglicht es ihnen, aufgaben hinzuzufügen, anzuzeigen, zu aktualisieren und zu löschen, während eine effiziente kommunikation zwischen frontend und backend sichergestellt wird als nächstes werden sie ihre gatsby website mit der web deployment plattform von back4app bereitstellen bereitstellung des frontends auf der web deployment plattform von back4app back4app web deployment bietet eine vollständig verwaltete, containerisierte umgebung zum hosten ihrer anwendungen mit docker basierten bereitstellungen können sie ihre gatsby website verpacken und mühelos bereitstellen gatsby für die produktion konfigurieren gatsby generiert standardmäßig eine statische website erstellen sie ihre produktionsbereite website mit npx gatsby build erstellen einer dockerfile für ihre website bevor sie eine dockerfile , erstellen sie zuerst eine dockerignore datei im stammverzeichnis ihres projekts und fügen sie diese zeilen code hinzu git node modules eslint prettier git vscode readme md dockerfile docker compose yml public cache als nächstes erstellen sie eine docker compose yml datei, um docker compose befehle zu verwenden das ziel der datei sollte die bereitstellungsstufe in ihrer dockerfile sein ihre docker compose yml datei sollte die folgenden befehle enthalten version '3' services app image todo app gatsby build context dockerfile dockerfile target deploy ports \ "8000 80" jetzt erstellen sie eine dockerfile im stammverzeichnis des projekts, um ihre gatsby website zu containerisieren from node 20 as build workdir /usr/src/app copy run npm install run npm run build from nginx 1 18 alpine as deploy workdir /usr/share/nginx/html run rm rf / copy from=build /usr/src/app/public entrypoint \[ "nginx", " g", "daemon off;" ] testen des containers lokal vor der bereitstellung, bauen und testen sie ihren docker container docker build t todo gatsby frontend führen sie den container aus docker run p 8000 80 todo gatsby frontend besuchen sie http //localhost 8000 in ihrem browser, um zu überprüfen, ob ihre seite korrekt bereitgestellt wird pushen zu github und bereitstellung über back4app pushen sie ihr projekt zu github git init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin main dann, deployen sie mit back4app web deployment melden sie sich bei back4app web deployment https //www back4app com/containers an klicken sie auf "neue app erstellen" , geben sie einen namen ein und wählen sie github repository aus autorisieren sie back4app, auf ihr repository zuzugreifen, und wählen sie das todo gatsby repository aus wählen sie dockerfile deployment und bestätigen sie die build einstellungen klicken sie auf "deploy" um den build prozess zu starten überwachung und verwaltung von deployments nach dem deployment verwenden sie das back4app dashboard, um protokolle zur fehlersuche anzuzeigen die leistung des containers und die ressourcennutzung zu überwachen neudepoyments bei neuen commits auszulösen benutzerdefinierte domains zu konfigurieren, falls erforderlich testen und debuggen ihrer anwendung nach der bereitstellung testen sie ihre gatsby website gründlich api konnektivität überprüfen öffnen sie die entwicklertools ihres browsers (f12 → netzwerk), um api aufrufe während der aufgabenoperationen zu überprüfen aufgaben hinzufügen und abrufen verwenden sie die benutzeroberfläche, um aufgaben hinzuzufügen, und aktualisieren sie dann, um die datenpersistenz im back4app datenbankbrowser zu bestätigen crud operationen testen stellen sie sicher, dass das markieren von aufgaben als abgeschlossen und das löschen korrekt im backend angezeigt werden randfälle behandeln validieren sie die formulareingaben und simulieren sie langsame netzwerkbedingungen mit entwicklertools wenn probleme auftreten, überprüfen sie die back4app protokolle oder ihre api konfiguration best practices für die nutzung von back4app diensten verbessern sie die leistung und sicherheit ihrer anwendung durch api aufrufe optimieren verwenden sie batch anfragen für mehrere operationen und fragen sie nur die notwendigen felder ab sensible daten sichern speichern sie anmeldeinformationen wie anwendungs id und javascript schlüssel in umgebungsvariablen erstellen sie mit gatsby eine env datei gatsby parse app id=your app id gatsby parse js key=your js key auto scaling aktivieren aktivieren sie das auto scaling in der back4app webbereitstellung, um hohen traffic zu verwalten sicherheit verbessern beschränken sie die berechtigungen auf klassenebene (clps), um datenänderungen zu steuern, und richten sie bei bedarf acls ein cloud code nutzen lagern sie komplexe logik in den cloud code aus, um die leistung zu verbessern und die api exposition zu reduzieren fazit sie haben nun eine vollständige to do listenanwendung mit gatsby für das frontend und den robusten backend diensten von back4app erstellt dieses tutorial hat sie durch die einrichtung eines gatsby projekts, die integration des parse sdk und die bereitstellung ihrer website mit containerisierten workflows auf back4app geführt während sie weiterentwickeln, sollten sie in betracht ziehen, funktionen wie erweiterte benutzerauthentifizierung, echtzeit updates und integrationen von drittanbietern hinzuzufügen für weitere informationen und unterstützung verweisen sie auf die back4app dokumentation https //www back4app com/docs