Einrichten des Projekts
(Sie können gerne mitcodieren oder den vollständigen Code aus dem GitHub-Repository herunterladen.)
Mit MERN können wir Full-Stack-Lösungen erstellen. Um sein volles Potenzial auszuschöpfen, werden wir ein MERN-Stack-Projekt erstellen. Für dieses Projekt werden wir sowohl ein Backend als auch ein Frontend erstellen. Das Frontend wird mit React und das Backend mit MongoDB, Node.js und Express implementiert. Wir rufen den Frontend- Client und den Backend -Server auf.
Beginnen wir mit der Erstellung eines leeren Verzeichnisses: mern. Dieser Ordner enthält unsere Client- und Serverordner.
Als Nächstes erstellen Sie einen Ordner für das Backend und nennen ihn „server“. Dann initialisieren wir die Datei package.json mit npm init.
Um ECMAScript Modules, das offiziell unterstützte Standardformat zur Paketierung von JavaScript-Code zur Wiederverwendung, zu verwenden, fügen wir eine Zeile in die package.json-Datei ein.
Wir werden auch die Abhängigkeiten installieren.
Der obige Befehl installiert drei verschiedene Pakete:
- mongodb – der MongoDB-Datenbanktreiber, der es Ihren Node.js-Anwendungen ermöglicht, eine Verbindung zur Datenbank herzustellen und mit Daten zu arbeiten
- express – das Webframework für Node.js (es wird unser Leben einfacher machen)
- cors – ein Node.js-Paket, das die gemeinsame Nutzung von Ressourcen zwischen verschiedenen Ursprüngen ermöglicht
Wir können die installierten Abhängigkeiten in der Datei package.json überprüfen. Es sollte die Pakete zusammen mit ihren Versionen auflisten.
Nachdem wir sichergestellt haben, dass die Abhängigkeiten erfolgreich installiert wurden, erstellen wir eine Datei namens server.js mit folgendem Code:
mern/server/server.js
Hier importieren wir Express und cors. const port = process.env.PORT greift auf die Portvariable aus der Datei config.env zu, die wir als Nächstes erstellen.
Verbindungsherstellung zu MongoDB Atlas
Es ist an der Zeit, unseren Server mit der Datenbank zu verbinden. Wir werden MongoDB Atlas als Datenbank verwenden. MongoDB Atlas ist ein cloudbasierter Datenbankdienst, der robuste Datensicherheit und Zuverlässigkeit bietet. MongoDB Atlas bietet einen kostenlosen Cluster, der nie abläuft und Ihnen Zugriff auf eine Teilmenge der Features und Funktionen von Atlas gewährt.
Befolgen Sie die Anleitung Erste Schritte mit Atlas, um ein Konto zu erstellen, Ihren ersten Cluster bereitzustellen und die Verbindungszeichenfolge Ihres Clusters zu finden.
Nachdem Sie nun die Verbindungszeichenfolge haben, gehen Sie zurück zum Serververzeichnis und erstellen Sie eine Datei „config.env“. Weisen Sie dort die Verbindungszeichenfolge einer neuen ATLAS_URI-Variable zu. Wenn Sie fertig sind, sollte Ihre Datei ungefähr wie die folgende aussehen. Ersetzen Sie < username >, < password >, < clusterName > und < projectId > mit Ihrem Datenbank-Benutzernamen, Passwort, Clusternamen und Projekt-ID.
mern/server/config.env
Erstellen Sie unter dem Serververzeichnis einen Ordner mit dem Namen db und darin eine Datei mit dem Namen connection.js. Dort können wir den folgenden Code hinzufügen, um eine Verbindung zu unserer Datenbank herzustellen:
mern/server/db/connection.js
Server-API-Endpunkte
Datenbank fertig. Server fertig. Jetzt ist es Zeit für die API-Endpunkte. Beginnen wir mit der Erstellung eines Routenordners und dem Hinzufügen von record.js darin. Navigieren Sie zurück zu Ihrem „Server“-Verzeichnis und erstellen Sie das neue Verzeichnis und die neue Datei:
Die Datei routes/record.js wird auch die folgenden Codezeilen enthalten:
mern/server/routes/record.js
Wenn Sie die Anwendung an diesem Punkt ausführen, erhalten Sie beim Herstellen der Verbindung die folgende Meldung in Ihrem Terminal. Beachten Sie, dass wir die integrierte Umgebungsvariablenfunktionalität der neuesten Versionen von Node.js verwenden.
Mit dem Backend sind wir nun fertig. Jetzt beginnen wir mit der Arbeit am Frontend.
Einrichten der React-Anwendung
Für das Frontend werden wir Vite verwenden, eine moderne Art, eine React-Anwendung zu erstellen. In einem neuen Terminal im Verzeichnis mern richten wir Folgendes ein:
Es gibt einige zusätzliche Abhängigkeiten, die in unserem Projekt verwendet werden sollen. Wir beginnen mit Tailwind CSS.
Als Nächstes bearbeiten wir das Inhaltsfeld in der Datei tailwind.config.js.
In der Datei src/index.css müssen wir die Tailwind-Direktiven hinzufügen und alles andere löschen.
Zuletzt installieren wir react-router-dom.
Tailwind ist ein nutzerorientiertes CSS-Framework, mit dem Sie durch die Verwendung vordefinierter Klassennamen CSS-Stile hinzufügen können. Und React Router fügt clientseitiges Seitenrouting zu React hinzu!
Einrichten des React-Routers
Innerhalb von src/main.jsx fügen wir den folgenden Code ein:
mern/client/src/main.jsx
Wir haben die Routen unserer Anwendungsseite in der Router-Variable eingerichtet und den RouterProvider verwendet, um unsere Benutzeroberfläche mit der URL synchron zu halten. RouterProvider hilft bei nahtlosen Übergängen beim Wechseln zwischen Komponenten. Im Grunde wird nur die Komponente neu geladen oder aktualisiert, die geändert werden muss, anstatt die gesamte Seite zu aktualisieren oder neu zu laden. Obwohl React Router keine Notwendigkeit ist, ist es wichtig, wenn Ihre App reagieren soll.
Erstellen von Komponenten
Als Nächstes erstellen wir die Komponenten, die wir in unseren Routen definiert haben. Erstellen Sie einen Komponentenordner im src-Ordner. Für jede Komponente, die wir erstellen, fügen wir eine neue .js- Datei im Komponentenordner hinzu. In diesem Fall fügen wir NavBar.jsx, RecordList.jsx und ModifyRecord.jsx hinzu.
Die folgenden Snapshots zeigen, wie jede Datei aussehen würde.
Navbar.jsx
In der Komponente navbar.js erstellen wir eine Navigationsleiste, die uns mit folgendem Code zu den benötigten Komponenten führt.
mern/client/src/components/Navbar.jsx
RecordList.jsx
Der folgende Code dient als Anzeigekomponente für unsere Datensätze. Es werden alle Datensätze in unserer Datenbank über eine GET-Methode abgerufen.
mern/client/src/components/RecordList.jsx
Record.jsx
Der folgende Code dient als Formularkomponente zum Erstellen oder Aktualisieren von Datensätzen. Diese Komponente sendet entweder einen Erstellungsbefehl oder einen Aktualisierungsbefehl an unseren Server.
mern/client/src/components/Record.jsx*
Jetzt fügen wir Folgendes zur Datei src/App.jsx hinzu.
mern/client/src/App.jsx
Dies ist unsere Hauptlayout-Komponente. Unsere Navbar wird immer oben auf jeder Seite stehen, und das Outlet wird die untergeordneten Komponenten akzeptieren, die wir zuvor in unseren Routen in der Datei main.jsx definiert haben.
Verbindung des Frontends mit dem Backend
Wir haben den Prozess der Komponentenerstellung abgeschlossen. Außerdem haben wir unsere React-App mithilfe von fetch mit dem Back-End verbunden, was eine sauberere und einfachere Verarbeitung von HTTP-Anfragen ermöglicht. In Record.jsx haben wir den folgenden Code an den Block onSubmit(e) angehängt. Wenn eine POST- oder PATCH-Anforderung an die URL gesendet wird, fügt Fetch der Datenbank entweder einen neuen Datensatz hinzu oder aktualisiert einen vorhandenen Datensatz in der Datenbank.
Wir haben auch den folgenden Codeblock in Record.jsx unterhalb des Konstruktorblocks eingefügt, um einen vorhandenen Datensatz zu laden, falls er existiert.
Schließlich holt RecordList.jsx. RecordList.jsx die Datensätze aus der Datenbank. Wir werden also die GET-Methode von fetch verwenden, um Datensätze aus der Datenbank abzurufen. Um dies zu erreichen, haben wir die folgenden Codezeilen über der Funktion RecordList() in RecordList.jsx hinzugefügt.
Nachdem Sie alles geschlossen haben, führen Sie die folgenden Schritte aus, um die App zu starten:
- Stellen Sie sicher, dass die Server-App noch ausgeführt wird. Ist dies nicht der Fall, starten Sie sie, indem Sie den folgenden Befehl im Serververzeichnis ausführen:
- Gehen Sie in einem neuen Terminal zum Client-Verzeichnis und führen Sie den folgenden Befehl aus:
So sieht die Landing Page der Datensatzkomponente aus, nachdem wir Datensätze für „Jesse Hall“, „Kushagra Kesav“ und „Stanimira Vlaeva“ über die Schaltfläche „Mitarbeiter erstellen“ hinzugefügt haben.
So sieht der Bildschirm aus, auf dem Sie einen Mitarbeiter hinzufügen können:
Herzlichen Glückwunsch zum Erstellen Ihrer ersten MERN-Anwendung. Weitere Ideen und fortgeschrittene Konzepte finden Sie in unserem Developer Center und wenn Sie Fragen haben, können Sie diese in unseren Community-Foren stellen.