Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Створення та Керування Маршрутами в Express.js | Розробка Веб-Застосунків з Express.js
Розробка бекенду з Node.js та Express.js

bookСтворення та Керування Маршрутами в Express.js

Розглянемо ці практичні приклади створення маршрутів у Express.js детальніше.

🌟 Базові маршрути

Створення простої програми на Express.js з маршрутами для різних HTTP-методів. Кожен маршрут обробляє певний HTTP-запит і надсилає відповідь клієнту.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('This is the homepage.');
});

app.post('/users', (req, res) => {
  // Handle user creation logic here.
  res.send('User created.');
});

app.put('/users/:id', (req, res) => {
  // Handle user update logic here.
  res.send(`User ${req.params.id} updated.`);
});

app.delete('/users/:id', (req, res) => {
  // Handle user deletion logic here.
  res.send(`User ${req.params.id} deleted.`);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});
  • GET-маршрут: Відповідає на GET-запит за кореневою адресою (/). Користувачі, які відкривають головну сторінку застосунку, отримують повідомлення "This is the homepage.";
  • POST-маршрут: Відповідає на POST-запит за адресою /users. Зазвичай використовується для створення нових записів користувачів. Маршрут містить коментар для реалізації логіки створення користувача, який можна замінити на фактичну логіку;
  • PUT-маршрут: Відповідає на PUT-запит за адресою /users/:id. Призначений для оновлення записів користувачів за параметром :id. Як і у POST-маршруті, містить коментар для реалізації логіки оновлення користувача;
  • DELETE-маршрут: Відповідає на DELETE-запит за адресою /users/:id. Використовується для видалення записів користувачів за параметром :id. Як і в інших маршрутах, містить коментар для реалізації логіки видалення користувача.

Примітка

Якщо ви не впевнені щодо URL або бажаєте переглянути це поняття, зверніться до наступної статті: URL vs URI vs URN

🌟 Обробка параметрів URL

Розглянемо створення маршруту, який обробляє параметри URL. Параметри URL — це динамічні частини URL, які можна використовувати для передачі даних на сервер. Ось як працює цей приклад:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});
  • Визначаємо маршрут за допомогою app.get('/users/:id', ...), де :id — це параметр URL. Це означає, що коли користувач звертається до URL на кшталт /users/123, змінна req.params.id міститиме значення 123;
  • Усередині обробника маршруту отримуємо параметр :id через req.params.id;
  • Ви можете замінити коментар на логіку для отримання даних користувача на основі userId, отриманого з параметра URL;
  • Нарешті, надсилаємо клієнту інформацію про користувача, ідентифікованого параметром :id.

🌟 Порядок і пріоритет маршрутів

Порядок визначення маршрутів має значення, оскільки Express використовує стратегію "перший збіг — переможець". Буде виконано перший маршрут, який відповідає запиту. У цьому прикладі розглядається ситуація, коли у вас є як конкретний, так і універсальний маршрут:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});

app.get('/users/*', (req, res) => {
  // Handle generic user-related requests.
  res.send('User-related request.');
});
  • Перший маршрут, app.get('/users/:id', ...), є конкретним маршрутом, який відповідає на URL-адреси на кшталт /users/123. Він обробляє запити з певним ідентифікатором користувача;
  • Другий маршрут, app.get('/users/*', ...), є універсальним маршрутом для загальних запитів, пов'язаних із користувачами. Він використовує символ підстановки (*), щоб відповідати будь-якій URL-адресі, яка починається з /users/, наприклад /users/settings.

У цій ситуації порядок визначення маршрутів є критичним. Конкретний маршрут слід визначати перед універсальним, щоб він мав пріоритет. Якщо спочатку визначити універсальний маршрут, він відповідатиме на всі URL-адреси, що починаються з /users/, і конкретний маршрут не зможе обробити запити з ідентифікатором користувача.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 2.56

bookСтворення та Керування Маршрутами в Express.js

Свайпніть щоб показати меню

Розглянемо ці практичні приклади створення маршрутів у Express.js детальніше.

🌟 Базові маршрути

Створення простої програми на Express.js з маршрутами для різних HTTP-методів. Кожен маршрут обробляє певний HTTP-запит і надсилає відповідь клієнту.

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('This is the homepage.');
});

app.post('/users', (req, res) => {
  // Handle user creation logic here.
  res.send('User created.');
});

app.put('/users/:id', (req, res) => {
  // Handle user update logic here.
  res.send(`User ${req.params.id} updated.`);
});

app.delete('/users/:id', (req, res) => {
  // Handle user deletion logic here.
  res.send(`User ${req.params.id} deleted.`);
});

app.listen(3000, () => {
  console.log('Server is running on port 3000.');
});
  • GET-маршрут: Відповідає на GET-запит за кореневою адресою (/). Користувачі, які відкривають головну сторінку застосунку, отримують повідомлення "This is the homepage.";
  • POST-маршрут: Відповідає на POST-запит за адресою /users. Зазвичай використовується для створення нових записів користувачів. Маршрут містить коментар для реалізації логіки створення користувача, який можна замінити на фактичну логіку;
  • PUT-маршрут: Відповідає на PUT-запит за адресою /users/:id. Призначений для оновлення записів користувачів за параметром :id. Як і у POST-маршруті, містить коментар для реалізації логіки оновлення користувача;
  • DELETE-маршрут: Відповідає на DELETE-запит за адресою /users/:id. Використовується для видалення записів користувачів за параметром :id. Як і в інших маршрутах, містить коментар для реалізації логіки видалення користувача.

Примітка

Якщо ви не впевнені щодо URL або бажаєте переглянути це поняття, зверніться до наступної статті: URL vs URI vs URN

🌟 Обробка параметрів URL

Розглянемо створення маршруту, який обробляє параметри URL. Параметри URL — це динамічні частини URL, які можна використовувати для передачі даних на сервер. Ось як працює цей приклад:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});
  • Визначаємо маршрут за допомогою app.get('/users/:id', ...), де :id — це параметр URL. Це означає, що коли користувач звертається до URL на кшталт /users/123, змінна req.params.id міститиме значення 123;
  • Усередині обробника маршруту отримуємо параметр :id через req.params.id;
  • Ви можете замінити коментар на логіку для отримання даних користувача на основі userId, отриманого з параметра URL;
  • Нарешті, надсилаємо клієнту інформацію про користувача, ідентифікованого параметром :id.

🌟 Порядок і пріоритет маршрутів

Порядок визначення маршрутів має значення, оскільки Express використовує стратегію "перший збіг — переможець". Буде виконано перший маршрут, який відповідає запиту. У цьому прикладі розглядається ситуація, коли у вас є як конкретний, так і універсальний маршрут:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Fetch user data based on `userId`.
  res.send(`User details for ID ${userId}.`);
});

app.get('/users/*', (req, res) => {
  // Handle generic user-related requests.
  res.send('User-related request.');
});
  • Перший маршрут, app.get('/users/:id', ...), є конкретним маршрутом, який відповідає на URL-адреси на кшталт /users/123. Він обробляє запити з певним ідентифікатором користувача;
  • Другий маршрут, app.get('/users/*', ...), є універсальним маршрутом для загальних запитів, пов'язаних із користувачами. Він використовує символ підстановки (*), щоб відповідати будь-якій URL-адресі, яка починається з /users/, наприклад /users/settings.

У цій ситуації порядок визначення маршрутів є критичним. Конкретний маршрут слід визначати перед універсальним, щоб він мав пріоритет. Якщо спочатку визначити універсальний маршрут, він відповідатиме на всі URL-адреси, що починаються з /users/, і конкретний маршрут не зможе обробити запити з ідентифікатором користувача.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 5
some-alt