Menu
CoddyTech

Parameter Rute

Termasuk bagian Dasar-Dasar Express dalam perjalanan Node.js di Coddy. Pelajaran 4 dari 23.

Recipe Box akan menyimpan banyak resep, dan membuat satu rute untuk setiap resep tidak akan ada habisnya.

app.get('/weather/:city', (req, res) => {
    res.send('Forecast for ' + req.params.city);
});

Bagian jalur yang diawali titik dua adalah parameter rute: bagian ini cocok dengan nilai apa pun, dan Express menaruh nilai itu di req.params. GET /weather/oslo mengirimkan Forecast for oslo.

Parameter selalu berupa string. GET /rooms/12 menghasilkan '12', dan '12' === 12 bernilai false, jadi konversikan dengan Number(...) sebelum membandingkannya dengan angka.

Jika hal yang diminta tidak ada, kirim status 404: res.status(404).send('No such city') menetapkan status, lalu mengirimkan respons.

challenge icon

Tantangan

Mudah

Setiap resep memiliki halamannya sendiri, di path yang memuat id-nya: /recipes/1, /recipes/2, dan seterusnya.

  1. Di server.js, tambahkan satu route untuk /recipes/:id. Route ini mencari resep di recipes (dari data.js) yang id-nya cocok dengan id di path. Route ini hanya mengirim judul resep tersebut sebagai teks: /recipes/2 mengirim Pancakes.
  2. Id dari path berupa string, sedangkan id di data.js berupa angka, jadi ubah tipenya sebelum membandingkannya.
  3. Jika tidak ada resep dengan id tersebut, atur status ke 404 dan kirim teks No such recipe.

Coba: Tekan Run dan kirim /recipes/2. Kamu akan melihat Pancakes dengan status 200. Kirim /recipes/4: Fish & Chips. Kirim /recipes/99: No such recipe dengan status 404.

Coba sendiri

import express from 'express';
import { recipes } from './data.js';

const app = express();

app.get('/', (req, res) => {
    res.send('Welcome to Recipe Box');
});

// type('text') mengirim teks biasa, sehingga setiap judul tampil pada baris tersendiri.
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 iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Express

Latihan sendiri: Playground Express