さらにルート
CoddyのNode.jsジャーニー「Expressの基礎」セクションの一部。レッスン 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は2番目の関数に到達します。ルートがないパスには、Express独自の404ページが表示されます。ルートのパスは必ず/で始まります。
Recipe Boxが再び登場します。4つのレシピを格納したdata.jsファイルと、そのタイトルを一覧表示する/recipesルートがあります。
チャレンジ
簡単Recipe Box には、ホームページとレシピ一覧の隣に「About」ページが必要です。
server.jsで、コメント// Add the /about page here.がある場所に、パス/aboutのルートを追加します。句点も含めて、次の文を送信します:Recipe Box collects family recipes./と/recipesのルートはそのままにします。
試してみましょう: 「Run」を押して、/about を送信します。Recipe Box collects family recipes. が表示されます。次に /recipes を送信すると、4つのレシピ名が1行ずつ表示されます。その後、/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プレイグラウンド