Створення та Керування Маршрутами в 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/, і конкретний маршрут не зможе обробити запити з ідентифікатором користувача.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain more about how URL parameters work in Express.js?
What happens if I reverse the order of the specific and catch-all routes?
Can you give an example of handling multiple URL parameters in a route?
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/, і конкретний маршрут не зможе обробити запити з ідентифікатором користувача.
Дякуємо за ваш відгук!