Reittien Luominen ja Hallinta Express.js:ssä
Pyyhkäise näyttääksesi valikon
Tarkastellaan näitä käytännön esimerkkejä reittien luomisesta Express.js:ssä tarkemmin.
Perusreitit
Luodaan yksinkertainen Express.js-sovellus, jossa on reitit eri HTTP-metodeille. Jokainen reitti käsittelee tietyn HTTP-pyynnön ja lähettää vastauksen asiakkaalle.
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('This is the homepage.');
});
app.post('/users', (req, res) => {
// Handle user creation logic here.
res.send('User created.');
});
app.put('/users/:id', (req, res) => {
// Handle user update logic here.
res.send(`User ${req.params.id} updated.`);
});
app.delete('/users/:id', (req, res) => {
// Handle user deletion logic here.
res.send(`User ${req.params.id} deleted.`);
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
- GET-reitti: Tämä reitti vastaa GET-pyyntöön juuriosoitteessa (
/). Sovelluksen etusivulle siirtyvät käyttäjät saavat viestin "Tämä on etusivu."; - POST-reitti: Tämä reitti vastaa POST-pyyntöön osoitteessa
/users. Sitä käytetään tyypillisesti uusien käyttäjätietueiden luomiseen. Reitillä on kommentti käyttäjän luontilogiikkaa varten, joka voidaan korvata varsinaisella toteutuksella; - PUT-reitti: Tämä reitti vastaa PUT-pyyntöön osoitteessa
/users/:id. Se on tarkoitettu käyttäjätietueiden päivittämiseen:id-parametrin perusteella. Kuten POST-reitillä, myös tässä on kommentti päivityslogiikkaa varten; - DELETE-reitti: Tämä reitti vastaa DELETE-pyyntöön osoitteessa
/users/:id. Sitä käytetään käyttäjätietueiden poistamiseen:id-parametrin perusteella. Kuten muissakin reiteissä, mukana on kommentti poistologiikkaa varten.
Huomio
Jos olet epävarma URL-osoitteesta tai haluat kerrata käsitteen, tutustu seuraavaan artikkeliin: URL vs URI vs URN
URL-parametrien käsittely
Keskitytään reitin luomiseen, joka käsittelee URL-parametreja. URL-parametrit ovat dynaamisia osia URL-osoitteessa, joita voidaan käyttää tiedon välittämiseen palvelimelle. Näin tämä esimerkki toimii:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
- Määritellään reitti käyttämällä
app.get('/users/:id', ...), jossa:idon URL-parametri. Tämä tarkoittaa, että kun käyttäjä siirtyy osoitteeseen/users/123, muuttujaanreq.params.idtallentuu arvo123; - Reitin käsittelijässä päästään käsiksi
:id-parametriin käyttämälläreq.params.id; - Kommentin tilalle voidaan lisätä logiikka, joka hakee käyttäjätiedot URL-parametrista saadun
userId:n perusteella; - Lopuksi vastataan asiakkaalle tiedoilla käyttäjästä, joka tunnistetaan
:id-parametrin avulla.
Reittien järjestys ja priorisointi
Reittien määrittelyjärjestyksellä on merkitystä, koska Express käyttää "first-match-wins"-strategiaa. Ensimmäinen sopiva reitti suoritetaan. Tässä esimerkissä tarkastellaan tilannetta, jossa käytössä on sekä tarkka että yleinen reitti:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
app.get('/users/*', (req, res) => {
// Handle generic user-related requests.
res.send('User-related request.');
});
- Ensimmäinen reitti,
app.get('/users/:id', ...), on tarkka reitti, joka vastaa URL-osoitteisiin kuten/users/123. Se käsittelee pyynnöt, joissa on yksilöllinen käyttäjätunnus; - Toinen reitti,
app.get('/users/*', ...), on yleisreitti käyttäjiin liittyville pyynnöille. Se käyttää jokerimerkkiä (*) vastatakseen kaikkiin URL-osoitteisiin, jotka alkavat/users/, kuten/users/settings.
Tässä tilanteessa järjestys on ratkaiseva. Tarkka reitti tulee määritellä ennen yleisreittiä, jotta se saa etusijan. Jos yleisreitti määritellään ensin, se vastaa kaikkiin /users/-alkuisiin osoitteisiin, eikä tarkka reitti pääse käsittelemään käyttäjätunnuksella varustettuja pyyntöjä.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme