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
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!