GET-Kaikkien Julkaisujen Päätepisteen Rakentaminen
Tässä osiossa tarkastellaan, kuinka toteutetaan "GET ALL POSTS" -reitti tiedostossa postsRoutes.js. Tämä reitti hakee kaikki julkaisut tietolähteestä (database/posts.json) ja palauttaa ne vastauksena asiakkaalle.
Tarvittavien moduulien ja riippuvuuksien tuonti
Tiedoston alussa tuodaan tarvittavat moduulit ja riippuvuudet:
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
express: Tuodaan Express-kehys reittien rakentamista varten;fs/promises: Tämä moduuli tarjoaa asynkronisia tiedosto-operaatioita, joita käytetään JSON-tiedoston lukemiseen;validatePostData: Vaikka tätä middlewarea ei käytetä tässä reitissä, tuodaanvalidatePostData-middleware tiedon validointia varten myöhemmissä luvuissa.
Express-reitittimen alustaminen
Alustetaan Express-reitittimen instanssi, joka käsittelee kaikki tässä tiedostossa määritellyt reitit:
const router = express.Router();
Datan lukemiseen tarkoitetun funktion luominen
Määritellään asynkroninen funktio nimeltä readData, joka lukee dataa JSON-tiedostosta. Tämä funktio varmistaa, että data haetaan oikein ja käsittelee virheet:
// 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: Käytetäänfs.readFile-metodia tiedoston./database/posts.jsonsisällön lukemiseen;JSON.parse: Tiedostosta haettu data jäsennetään JavaScript-olioksi;- Virheenkäsittely: Jos lukemisen tai jäsentämisen aikana tapahtuu virhe, se otetaan kiinni ja virhe heitetään eteenpäin.
"GET ALL POSTS" -reitityksen määrittely
Näin määritellään "GET ALL POSTS" -reitti reitittimessä:
// 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
}
});
Reitin määrittely: Tämä reitti käsittelee HTTP GET -pyynnöt juuripolkuun (/).
Reitin käsittelijä: Reitin käsittelijäfunktion sisällä:
- Kutsutaan
readData-funktiota, joka hakee postaukset JSON-tiedostosta; - Jos datan haku onnistuu, lähetetään haettu data vastauksena käyttäen
res.send(data); - Jos prosessin aikana ilmenee virheitä, virhe otetaan kiinni, kirjataan konsoliin virheenkorjausta varten (
console.error(error.message)) ja jatketaan.
postsRoutes.js-tiedoston täydellinen koodi tässä vaiheessa
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
}
});
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Can you explain how error handling works in this route?
What would be the next step to add more routes, like "GET POST BY ID"?
How does the readData function handle missing or corrupted JSON files?
Awesome!
Completion rate improved to 2.56
GET-Kaikkien Julkaisujen Päätepisteen Rakentaminen
Pyyhkäise näyttääksesi valikon
Tässä osiossa tarkastellaan, kuinka toteutetaan "GET ALL POSTS" -reitti tiedostossa postsRoutes.js. Tämä reitti hakee kaikki julkaisut tietolähteestä (database/posts.json) ja palauttaa ne vastauksena asiakkaalle.
Tarvittavien moduulien ja riippuvuuksien tuonti
Tiedoston alussa tuodaan tarvittavat moduulit ja riippuvuudet:
const express = require("express");
const fs = require("fs/promises");
const validatePostData = require("../middlewares/validateData");
express: Tuodaan Express-kehys reittien rakentamista varten;fs/promises: Tämä moduuli tarjoaa asynkronisia tiedosto-operaatioita, joita käytetään JSON-tiedoston lukemiseen;validatePostData: Vaikka tätä middlewarea ei käytetä tässä reitissä, tuodaanvalidatePostData-middleware tiedon validointia varten myöhemmissä luvuissa.
Express-reitittimen alustaminen
Alustetaan Express-reitittimen instanssi, joka käsittelee kaikki tässä tiedostossa määritellyt reitit:
const router = express.Router();
Datan lukemiseen tarkoitetun funktion luominen
Määritellään asynkroninen funktio nimeltä readData, joka lukee dataa JSON-tiedostosta. Tämä funktio varmistaa, että data haetaan oikein ja käsittelee virheet:
// 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: Käytetäänfs.readFile-metodia tiedoston./database/posts.jsonsisällön lukemiseen;JSON.parse: Tiedostosta haettu data jäsennetään JavaScript-olioksi;- Virheenkäsittely: Jos lukemisen tai jäsentämisen aikana tapahtuu virhe, se otetaan kiinni ja virhe heitetään eteenpäin.
"GET ALL POSTS" -reitityksen määrittely
Näin määritellään "GET ALL POSTS" -reitti reitittimessä:
// 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
}
});
Reitin määrittely: Tämä reitti käsittelee HTTP GET -pyynnöt juuripolkuun (/).
Reitin käsittelijä: Reitin käsittelijäfunktion sisällä:
- Kutsutaan
readData-funktiota, joka hakee postaukset JSON-tiedostosta; - Jos datan haku onnistuu, lähetetään haettu data vastauksena käyttäen
res.send(data); - Jos prosessin aikana ilmenee virheitä, virhe otetaan kiinni, kirjataan konsoliin virheenkorjausta varten (
console.error(error.message)) ja jatketaan.
postsRoutes.js-tiedoston täydellinen koodi tässä vaiheessa
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
}
});
Kiitos palautteestasi!