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ä

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 saapuvat 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 luonnin logiikalle, 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ä, mukana on kommentti päivityslogiikalle;
  • 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 poistologiikalle.
Note
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ääritämme reitin 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, muuttujaan req.params.id tallentuu arvo 123;
  • Reitin käsittelijän sisällä pääsemme käsiksi :id-parametriin käyttämällä req.params.id;
  • Voit korvata kommentin logiikalla, joka hakee käyttäjätiedot URL-parametrista saadun userId:n perusteella;
  • Lopuksi vastaamme asiakkaalle tiedoilla käyttäjästä, jonka tunnisteena on :id-parametri.

Reittien järjestys ja priorisointi

Reittien määrittelyjärjestyksellä on merkitystä, koska Express käyttää "ensimmäinen osuma voittaa" -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 määrittelet yleisreitin 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

Osio 3. Luku 5
some-alt