Дополнительные маршруты
Часть раздела Основы Express путешествия по Node.js на Coddy. Урок 3 из 23.
У сайта больше одной страницы, поэтому серверу нужен маршрут для каждого пути.
app.get('/books', (req, res) => {
res.send('12 books on the shelf');
});
app.get('/opening-hours', (req, res) => {
res.send('Monday to Friday, 10 to 6');
});Express считывает путь каждого запроса и вызывает маршрут с этим путём: GET /books ведёт к первой функции, GET /opening-hours — ко второй. Для пути без маршрута Express показывает собственную страницу 404. Путь маршрута всегда начинается с /.
Recipe Box возвращается: теперь в нём есть файл data.js с четырьмя рецептами и маршрут /recipes, который выводит их названия.
Задание
ЛегкоRecipe Box нужна страница «О нас» рядом с главной страницей и списком рецептов.
- В
server.js, там, где находится комментарий// Add the /about page here., добавь маршрут для пути/about. Он отправляет это предложение, включая точку:Recipe Box collects family recipes. - Оставь маршруты
/и/recipesбез изменений.
Попробуй: Нажми «Запустить» и отправь запрос к /about. Ты должен увидеть Recipe Box collects family recipes. Отправь запрос к /recipes: четыре названия рецептов, по одному в строке. Затем отправь запрос к /about-us. Ни один маршрут не использует этот путь, поэтому Express отвечает статусом 404 и сообщением Cannot GET /about-us. Список путей в строке запросов показывает маршруты твоего приложения.
Попробуйте сами
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'));
});
// Добавьте здесь страницу /about.
app.listen(3000, () => {
console.log('Recipe Box is running on port 3000');
});
Все уроки раздела Основы Express
Потренируйтесь самостоятельно: Песочница Express