Menu
CoddyTech

Параметры маршрута

Часть раздела Основы 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') устанавливает статус, а затем отправляет ответ.

challenge icon

Задание

Легко
  • 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');
});
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы Express