Parametri delle route
Fa parte della sezione Fondamenti di Express del percorso Node.js di Coddy. Lezione 4 di 23.
La ricettario conterrà molte ricette, e una route per ogni ricetta non finirebbe mai.
app.get('/weather/:city', (req, res) => {
res.send('Forecast for ' + req.params.city);
});Una parte del percorso che inizia con i due punti è un parametro della route: corrisponde a qualsiasi valore ed Express inserisce quel valore in req.params. GET /weather/oslo invia Forecast for oslo.
Un parametro è sempre una stringa. GET /rooms/12 restituisce '12', e '12' === 12 è false, quindi convertilo con Number(...) prima di confrontarlo con dei numeri.
Quando ciò che viene richiesto non esiste, rispondi con lo stato 404: res.status(404).send('No such city') imposta lo stato, poi invia la risposta.
Sfida
FacileOgni ricetta ha la propria pagina, con un percorso che contiene il suo id: /recipes/1, /recipes/2 e così via.
- In
server.js, aggiungi una route per/recipes/:id. Trova inrecipes(dadata.js) la ricetta il cuiidcorrisponde all'id nel percorso. Invia solo il titolo di quella ricetta, come testo:/recipes/2inviaPancakes. - L'id del percorso è una stringa e gli id in
data.jssono numeri, quindi convertilo prima del confronto. - Se nessuna ricetta ha quell'id, imposta lo stato su 404 e invia il testo
No such recipe.
Prova: premi «Esegui» e invia /recipes/2. Dovresti vedere Pancakes con stato 200. Invia /recipes/4: Fish & Chips. Invia /recipes/99: No such recipe con stato 404.
Provalo tu
import express from 'express';
import { recipes } from './data.js';
const app = express();
app.get('/', (req, res) => {
res.send('Welcome to Recipe Box');
});
// type('text') invia testo semplice, quindi ogni titolo appare su una riga a sé.
app.get('/recipes', (req, res) => {
res.type('text').send(recipes.map((recipe) => recipe.title).join('\n'));
});
app.get('/about', (req, res) => {
res.send('Recipe Box collects family recipes.');
});
app.listen(3000, () => {
console.log('Recipe Box is running on port 3000');
});
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di Express
Esercitati da solo: Playground Express