Routage et intergiciels dans Express
Maîtrisez le routage Express pour définir des points d’accès d’API et mettre en œuvre des intergiciels pour le traitement des requêtes.
Routage et intergiciels dans Express est une leçon Node.js Backend Development Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Node.js Backend Development Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Node.js Backend Development Bootcamp comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Routing Your Express API
Welcome back! In this lesson, we'll dive into routing and middleware in Express. These are core concepts for building powerful and organized web applications.
Routing helps your server understand what to do when it receives different requests, like showing a user profile or saving new data.
Defining Basic Routes
A route tells your Express app how to respond to a specific type of request to a particular URL path. You define routes using methods like app.get(), app.post(), app.put(), and app.delete().
Each route method takes a path and a handler function that executes when the route is matched.
First GET Route Example
Let's create a simple GET route that responds to requests at the root URL (/). This is often your homepage or a basic API status check.
The handler function receives req (request) and res (response) objects.
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello from our Express API!');
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});Handling Dynamic Route Parameters
Often, you need to capture dynamic values from the URL, like a user's ID. This is done with route parameters, denoted by a colon (:) in the path.
You can access these parameters through the req.params object in your route handler.
const express = require('express');
const app = express();
const port = 3000;
app.get('/users/:userId', (req, res) => {
const userId = req.params.userId;
res.send(`You requested user ID: ${userId}`);
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});What is Middleware?
Middleware functions are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle.
They can:
- Execute any code.
- Make changes to the request and the response objects.
- End the request-response cycle.
- Call the next middleware function in the stack.
The 'next()' Function
The key to middleware is the next() function. If a middleware function does not end the request-response cycle (e.g., by calling res.send()), it must call next() to pass control to the next middleware function or route handler.
If next() is not called, the request will be left hanging.
Application-level Middleware
You can apply middleware globally to all requests using app.use(). This is great for tasks like logging, parsing JSON bodies, or setting common headers.
Let's create a simple logger that runs for every incoming request.
const express = require('express');
const app = express();
const port = 3000;
// Application-level middleware
app.use((req, res, next) => {
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
next(); // Don't forget to call next()
});
app.get('/', (req, res) => {
res.send('Check your server console for the log!');
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});Route-level Middleware
Sometimes, you only want middleware to run for specific routes. You can apply route-level middleware by passing it as an argument before the route handler function.
You can even chain multiple middleware functions for a single route.
const express = require('express');
const app = express();
const port = 3000;
// A simple authentication middleware
const isAuthenticated = (req, res, next) => {
if (req.headers.authorization === 'Bearer mysecrettoken') {
next(); // User is authenticated, proceed
} else {
res.status(401).send('Unauthorized: Invalid token');
}
};
// Apply isAuthenticated middleware only to this route
app.get('/dashboard', isAuthenticated, (req, res) => {
res.send('Welcome to the protected dashboard!');
});
app.get('/', (req, res) => {
res.send('Public content here.');
});
app.listen(port, () => {
console.log(`Server running on http://localhost:${port}`);
});Common Middleware Uses
Middleware is incredibly versatile. Here are some common use cases:
- Authentication/Authorization: Checking user credentials or permissions.
- Logging: Recording request details for debugging or monitoring.
- Body Parsing: Extracting JSON or URL-encoded data from request bodies (e.g.,
express.json()). - Error Handling: Catching and responding to errors (special middleware type).
- Input Validation: Ensuring request data meets specific criteria.
Middleware & Routing Check
Let's test your understanding of Express routing and middleware!
Recap: Routing & Middleware
Great job! You've learned how Express uses routing to direct requests to specific handlers based on URL paths and HTTP methods.
You also mastered middleware, powerful functions that can intercept and process requests at various stages, either globally with app.use() or for specific routes. Understanding these concepts is fundamental to building robust Express applications!
Questions Fréquemment Posées
La leçon « Routage et intergiciels dans Express » est-elle gratuite ?
Oui — le texte complet de « Routage et intergiciels dans Express » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Node.js Backend Development Bootcamp, passe à CoddyKit PRO. Le cours Node.js Backend Development Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Routage et intergiciels dans Express » ?
Maîtrisez le routage Express pour définir des points d’accès d’API et mettre en œuvre des intergiciels pour le traitement des requêtes. Tu pratiques Node.js Backend Development Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Node.js Backend Development Bootcamp ?
Aucune expérience préalable n'est requise. Node.js Backend Development Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Routage et intergiciels dans Express » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Node.js Backend Development Bootcamp ?
Oui. Chaque leçon Node.js Backend Development Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Fondamentaux du framework Express.js
- Routage et intergiciels dans Express
- Concevoir des points d’accès d’API RESTful
- Gérer les données des requêtes : corps, requête et paramètres