Параметры маршрута
Часть раздела Основы Express путешествия по Node.js на Coddy. Урок 4 из 20.
В Recipe Box будет много рецептов, и отдельный маршрут для каждого рецепта никогда не закончится.
app.get('/weather/:city', (req, res) => {
res.send('Forecast for ' + req.params.city);
});Часть пути, начинающаяся с двоеточия, — это параметр маршрута: он соответствует любому значению, и Express помещает это значение в req.params. Запрос GET /weather/oslo отправляет Forecast for oslo.
Параметр всегда является строкой. Запрос GET /rooms/12 возвращает '12', а '12' === 12 — это false, поэтому преобразуй значение с помощью Number(...), прежде чем сравнивать его с числами.
Если запрошенного объекта не существует, верни статус 404: res.status(404).send('No such city') устанавливает статус, а затем отправляет ответ.
Задание
ЛегкоGET /recipes/:idвозвращает название рецепта с этим идентификатором.- Для неизвестного идентификатора возвращается
404с сообщениемNo such recipe.
Отправь GET /recipes/2, затем GET /recipes/99.
Попробуйте сами
import express from 'express';
import { recipes } from './data.js';
const app = express();
app.get('/', (req, res) => {
res.send('Welcome to Recipe Box');
});
// type('text') отправляет обычный текст, поэтому каждое название отображается на отдельной строке.
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');
});
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.