ניתוב (Routing)

מהו Routing?

Routing הוא התהליך שבו האפליקציה מחליטה איך להגיב לבקשות בנתיבים שונים.


מבנה בסיסי

app.METHOD(PATH, HANDLER);
חלק תיאור דוגמה
METHOD מתודת HTTP get, post, put, delete
PATH הנתיב ב-URL '/', '/users'
HANDLER הפונקציה שמטפלת (req, res) => {}

HTTP Methods

// GET - קבלת מידע
app.get('/users', (req, res) => {
    res.json([{ id: 1, name: 'יוסי' }]);
});

// POST - יצירת משאב חדש
app.post('/users', (req, res) => {
    res.status(201).json({ user: req.body });
});

// PUT - עדכון מלא
app.put('/users/:id', (req, res) => {
    res.json({ updated: true });
});

// DELETE - מחיקה
app.delete('/users/:id', (req, res) => {
    res.status(204).send();
});

Route Parameters

// One parameter
app.get('/users/:id', (req, res) => {
    res.json({ userId: req.params.id });
});

// Multiple parameters
app.get('/users/:userId/posts/:postId', (req, res) => {
    const { userId, postId } = req.params;
    res.json({ userId, postId });
});

Query Strings

// URL: /search?q=express&page=1
app.get('/search', (req, res) => {
    const { q, page } = req.query;
    res.json({ searchTerm: q, page });
});

Express Router

// routes/users.js
import express from 'express';
const router = express.Router();

router.get('/', (req, res) => res.json({ users: [] }));
router.get('/:id', (req, res) => res.json({ user: req.params.id }));
router.post('/', (req, res) => res.status(201).json(req.body));

export default router;

// app.js
import usersRouter from './routes/users.js';
app.use('/users', usersRouter);

Route Chaining

app.route('/users')
    .get((req, res) => res.json({ action: 'list' }))
    .post((req, res) => res.json({ action: 'create' }));

← חזרה לתחביר | המשך ל-Middleware →

בדקו את עצמכם

נסו לענות לבד לפני שאתם פותחים את התשובה.

  1. מה עושה express.Router()?

    1. מוחק נתיבים
    2. מפעיל שרת נוסף
    3. מחליף את app
    4. יוצר קבוצת נתיבים שאפשר לחבר תחת קידומת, בקובץ נפרד
    הצגת התשובה

    תשובה ד. app.use('/api/users', usersRouter) מסדר את הקוד לפי תחומים.

  2. איזו שיטת HTTP מתאימה ליצירת משאב חדש?

    1. GET
    2. HEAD
    3. DELETE
    4. POST
    הצגת התשובה

    תשובה ד. GET לקריאה, POST ליצירה, PATCH/PUT לעדכון, DELETE למחיקה.