Installez Express et structurez votre premier serveur avec des routes, des paramètres d'URL et des middlewares.
Ouvrir cette leçon dans KodokonVous savez déjà lancer un serveur avec le module http natif : tout y est manuel, de la lecture de l'URL à la composition des en-têtes. Express est le framework qui a standardisé le développement web côté Node : routage, middlewares, API concise, sans rien cacher du protocole. Créez un projet et installez-le.
mkdir kodokon-api
cd kodokon-api
npm init -y
npm install expressAjoutez la propriété type avec la valeur module dans votre package.json : tout le projet utilisera les modules ES. Créez ensuite server.js. Quelques lignes suffisent pour un serveur fonctionnel : on crée l'application, on déclare une route, on écoute un port.
import express from "express";
const app = express();
app.get("/", (req, res) => {
res.send("API Kodokon en ligne");
});
app.listen(3000, () => {
console.log("http://localhost:3000");
});Une route associe une méthode HTTP et un chemin à une fonction. Les segments dynamiques se déclarent avec deux points : dans /users/:id, la valeur est disponible dans req.params.id. Les paramètres de requête (?q=node) arrivent eux dans req.query. Retenez la distinction : le chemin identifie la ressource, la query string affine la demande.
app.get("/users/:id", (req, res) => {
const { id } = req.params;
res.json({ id, name: "Utilisateur " + id });
});
app.get("/search", (req, res) => {
const { q } = req.query;
res.json({ query: q ?? "" });
});Un middleware est une fonction qui s'exécute entre la réception de la requête et votre route. Sa signature : (req, res, next). Il peut enrichir req, répondre directement, ou passer la main avec next(). Express n'est au fond qu'une chaîne de middlewares : journalisation, authentification, parsing du corps. Celui-ci journalise chaque requête avec sa durée :
app.use((req, res, next) => {
const start = Date.now();
res.on("finish", () => {
const ms = Date.now() - start;
console.log(`${req.method} ${req.url} ${ms}ms`);
});
next();
});/users/:id. Où récupérez-vous la valeur de id ?req.query.idreq.params.idreq.body.idnext() ?package.json pour utiliser la syntaxe import dans Node.js ?type réglée sur moduleesm réglée sur true