Створення та Керування Маршрутами в 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/, і конкретний маршрут не зможе обробити запити з ідентифікатором користувача.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.56
Створення та Керування Маршрутами в 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/, і конкретний маршрут не зможе обробити запити з ідентифікатором користувача.
Дякуємо за ваш відгук!