Reittien Luominen ja Hallinta Express.js:ssä
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
Awesome!
Completion rate improved to 2.56
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!