Erstellung des GET-Endpunkts für Alle Beiträge
Swipe um das Menü anzuzeigen
In diesem Abschnitt wird erläutert, wie die Route "GET ALL POSTS" in der Datei postsRoutes.js implementiert wird. Diese Route ruft eine Liste aller Beiträge aus der Datenquelle (database/posts.json) ab und sendet sie als Antwort an den Client.
Import der benötigten Module und Abhängigkeiten
Am Anfang der Datei werden die erforderlichen Module und Abhängigkeiten importiert:
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
express: Import des Express-Frameworks zur Erstellung der Routen;fs/promises: Dieses Modul stellt asynchrone Dateioperationen bereit, die zum Lesen von Daten aus einer JSON-Datei verwendet werden;validatePostData: Obwohl in dieser Route nicht verwendet, wird das MiddlewarevalidatePostDataimportiert, das für die Datenvalidierung in späteren Kapiteln nützlich sein wird.
Initialisierung eines Express Routers
Initialisierung einer Instanz eines Express Routers zur Verwaltung aller in dieser Datei definierten Routen:
const router = express.Router();
Erstellen einer Funktion zum Lesen von Daten
Definition einer asynchronen Funktion mit dem Namen readData zum Lesen von Daten aus einer JSON-Datei. Diese Funktion stellt sicher, dass die Daten korrekt abgerufen werden und behandelt Fehler:
// Function to read data from the JSON file
async function readData() {
try {
// Read the contents of the `posts.json` file
const data = await fs.readFile("./database/posts.json");
// Parse the JSON data into a JavaScript object
return JSON.parse(data);
} catch (error) {
// If an error occurs during reading or parsing, throw the error
throw error;
}
}
fs.readFile: Verwendung vonfs.readFilezum Lesen des Inhalts der Datei./database/posts.json;JSON.parse: Die aus der Datei abgerufenen Daten werden in ein JavaScript-Objekt umgewandelt;- Fehlerbehandlung: Bei Fehlern während des Lese- oder Parsing-Vorgangs werden diese abgefangen und der Fehler wird ausgelöst.
Definition der "GET ALL POSTS"-Route
So wird die "GET ALL POSTS"-Route im Router definiert:
// GET ALL POSTS
router.get("/", async (req, res, next) => {
try {
// Call the `readData` function to retrieve the list of posts
const data = await readData();
// Send the retrieved data as the response
res.status(200).send(data);
} catch (error) {
// If an error occurs during data retrieval or sending the response
console.error(error.message); // Log the error to the console for debugging
}
});
Routendefinition: Diese Route verarbeitet HTTP-GET-Anfragen an den Root-Pfad (/).
Routen-Handler: Innerhalb der Handler-Funktion:
- Aufruf der Funktion
readDatazum Abrufen der Liste der Posts aus der JSON-Datei; - Bei erfolgreichem Datenabruf wird die abgerufene Datenliste als Antwort mit
res.send(data)gesendet; - Bei Fehlern während dieses Prozesses wird der Fehler abgefangen, zur Fehlersuche in der Konsole protokolliert (
console.error(error.message)) und der Vorgang fortgesetzt.
Vollständiger Code der Datei postsRoutes.js in diesem Schritt
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
const router = express.Router();
// Function to read data from the JSON file
async function readData() {
try {
// Read the contents of the `posts.json` file
const data = await fs.readFile("./database/posts.json");
// Parse the JSON data into a JavaScript object
return JSON.parse(data);
} catch (error) {
// If an error occurs during reading or parsing, throw the error
throw error;
}
}
// GET ALL POSTS
router.get("/", async (req, res, next) => {
try {
// Call the `readData` function to retrieve the list of posts
const data = await readData();
// Send the retrieved data as the response
res.status(200).send(data);
} catch (error) {
// If an error occurs during data retrieval or sending the response
console.error(error.message); // Log the error to the console for debugging
}
});
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen