Oppretting og Håndtering av Ruter i Express.js
La oss utforske disse praktiske eksemplene på hvordan man oppretter ruter i Express.js i mer detalj.
🌟 Grunnleggende ruter
La oss lage en enkel Express.js-applikasjon med ruter for ulike HTTP-metoder. Hver rute håndterer en spesifikk HTTP-forespørsel og sender et svar tilbake til klienten.
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-rute: Denne ruten svarer på en GET-forespørsel til rot-URL-en (
/). Brukere som besøker applikasjonens hjemmeside vil motta meldingen "This is the homepage."; - POST-rute: Denne ruten svarer på en POST-forespørsel til
/users-URL-en. Den brukes vanligvis til å opprette nye brukere. Ruten inneholder en kommentar for håndtering av logikk for opprettelse av bruker, som kan erstattes med faktisk logikk; - PUT-rute: Denne ruten svarer på en PUT-forespørsel til
/users/:id-URL-en. Den er laget for å oppdatere brukerdata basert på:id-parameteren. Som POST-ruten inneholder den en kommentar for håndtering av oppdateringslogikk; - DELETE-rute: Denne ruten svarer på en DELETE-forespørsel til
/users/:id-URL-en. Den brukes til å slette brukere basert på:id-parameteren. Som de andre rutene inneholder den en kommentar for håndtering av slettelogikk.
Merk
Hvis du er usikker på hva en URL er, eller ønsker å repetere konseptet, vennligst se følgende artikkel: URL vs URI vs URN
🌟 Håndtering av URL-parametere
Fokus på å opprette en rute som håndterer URL-parametere. URL-parametere er dynamiske deler av en URL som kan brukes til å sende data til serveren. Slik fungerer dette eksempelet:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
- En rute defineres med
app.get('/users/:id', ...), hvor:ider en URL-parameter. Dette betyr at når en bruker går til en URL som/users/123, vil variabelenreq.params.idinneholde verdien123; - Inne i rutehåndtereren får vi tilgang til
:id-parameteren ved å brukereq.params.id; - Kommentaren kan erstattes med logikk for å hente brukerdata basert på
userIdhentet fra URL-parameteren; - Til slutt sendes et svar til klienten med informasjon om brukeren identifisert av
:id-parameteren.
🌟 Rekkefølge og prioritering av ruter
Rekkefølgen rutene defineres i er viktig fordi Express benytter en "første treff vinner"-strategi. Den første ruten som matcher vil bli kjørt. I dette eksempelet vurderes et scenario hvor du har både en spesifikk og en generell rute:
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.');
});
- Den første ruten,
app.get('/users/:id', ...), er en spesifikk rute som svarer på URL-er som/users/123. Den håndterer forespørsler med en spesifikk bruker-ID; - Den andre ruten,
app.get('/users/*', ...), er en generell rute for brukerrelaterte forespørsler. Den benytter et jokertegn (*) for å matche alle URL-er som starter med/users/, for eksempel/users/settings.
I dette tilfellet er rekkefølgen avgjørende. Den spesifikke ruten bør defineres før den generelle for å sikre at den får prioritet. Hvis du definerer den generelle ruten først, vil den matche alle URL-er som starter med /users/, og den spesifikke ruten vil ikke få mulighet til å håndtere forespørsler med bruker-ID.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.56
Oppretting og Håndtering av Ruter i Express.js
Sveip for å vise menyen
La oss utforske disse praktiske eksemplene på hvordan man oppretter ruter i Express.js i mer detalj.
🌟 Grunnleggende ruter
La oss lage en enkel Express.js-applikasjon med ruter for ulike HTTP-metoder. Hver rute håndterer en spesifikk HTTP-forespørsel og sender et svar tilbake til klienten.
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-rute: Denne ruten svarer på en GET-forespørsel til rot-URL-en (
/). Brukere som besøker applikasjonens hjemmeside vil motta meldingen "This is the homepage."; - POST-rute: Denne ruten svarer på en POST-forespørsel til
/users-URL-en. Den brukes vanligvis til å opprette nye brukere. Ruten inneholder en kommentar for håndtering av logikk for opprettelse av bruker, som kan erstattes med faktisk logikk; - PUT-rute: Denne ruten svarer på en PUT-forespørsel til
/users/:id-URL-en. Den er laget for å oppdatere brukerdata basert på:id-parameteren. Som POST-ruten inneholder den en kommentar for håndtering av oppdateringslogikk; - DELETE-rute: Denne ruten svarer på en DELETE-forespørsel til
/users/:id-URL-en. Den brukes til å slette brukere basert på:id-parameteren. Som de andre rutene inneholder den en kommentar for håndtering av slettelogikk.
Merk
Hvis du er usikker på hva en URL er, eller ønsker å repetere konseptet, vennligst se følgende artikkel: URL vs URI vs URN
🌟 Håndtering av URL-parametere
Fokus på å opprette en rute som håndterer URL-parametere. URL-parametere er dynamiske deler av en URL som kan brukes til å sende data til serveren. Slik fungerer dette eksempelet:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
- En rute defineres med
app.get('/users/:id', ...), hvor:ider en URL-parameter. Dette betyr at når en bruker går til en URL som/users/123, vil variabelenreq.params.idinneholde verdien123; - Inne i rutehåndtereren får vi tilgang til
:id-parameteren ved å brukereq.params.id; - Kommentaren kan erstattes med logikk for å hente brukerdata basert på
userIdhentet fra URL-parameteren; - Til slutt sendes et svar til klienten med informasjon om brukeren identifisert av
:id-parameteren.
🌟 Rekkefølge og prioritering av ruter
Rekkefølgen rutene defineres i er viktig fordi Express benytter en "første treff vinner"-strategi. Den første ruten som matcher vil bli kjørt. I dette eksempelet vurderes et scenario hvor du har både en spesifikk og en generell rute:
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.');
});
- Den første ruten,
app.get('/users/:id', ...), er en spesifikk rute som svarer på URL-er som/users/123. Den håndterer forespørsler med en spesifikk bruker-ID; - Den andre ruten,
app.get('/users/*', ...), er en generell rute for brukerrelaterte forespørsler. Den benytter et jokertegn (*) for å matche alle URL-er som starter med/users/, for eksempel/users/settings.
I dette tilfellet er rekkefølgen avgjørende. Den spesifikke ruten bør defineres før den generelle for å sikre at den får prioritet. Hvis du definerer den generelle ruten først, vil den matche alle URL-er som starter med /users/, og den spesifikke ruten vil ikke få mulighet til å håndtere forespørsler med bruker-ID.
Takk for tilbakemeldingene dine!