Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Reittien Luominen ja Hallinta Express.js:ssä | Verkkosovellusten Kehittäminen Express.js:llä
Backend-kehitys Node.js:llä ja Express.js:llä

bookReittien 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 "This is the homepage.";
  • 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 luontilogiikan käsittelyä 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äivityslogiikan käsittelylle;
  • 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 poistologiikan käsittelyä varten.

Huomio

Jos olet epävarma URL-osoitteesta tai haluat kerrata käsitteen, tutustu seuraavaan artikkeliin: URL vs URI vs URN

🌟 Käsittele URL-parametreja

Tarkastellaan reitin luomista, 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}.`);
});
  • Reitti määritellään käyttämällä app.get('/users/:id', ...), jossa :id on URL-parametri. Tämä tarkoittaa, että kun käyttäjä siirtyy osoitteeseen /users/123, muuttuja req.params.id sisältää arvon 123;
  • 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ä, jonka tunniste on :id-parametrissa.

🌟 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 tietty 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ä.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain more about how route order affects request handling in Express.js?

What happens if I reverse the order of the specific and catch-all routes?

Can you give more examples of using URL parameters in routes?

Awesome!

Completion rate improved to 2.56

bookReittien 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 "This is the homepage.";
  • 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 luontilogiikan käsittelyä 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äivityslogiikan käsittelylle;
  • 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 poistologiikan käsittelyä varten.

Huomio

Jos olet epävarma URL-osoitteesta tai haluat kerrata käsitteen, tutustu seuraavaan artikkeliin: URL vs URI vs URN

🌟 Käsittele URL-parametreja

Tarkastellaan reitin luomista, 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}.`);
});
  • Reitti määritellään käyttämällä app.get('/users/:id', ...), jossa :id on URL-parametri. Tämä tarkoittaa, että kun käyttäjä siirtyy osoitteeseen /users/123, muuttuja req.params.id sisältää arvon 123;
  • 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ä, jonka tunniste on :id-parametrissa.

🌟 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 tietty 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ä.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 5
some-alt