Maison > interface Web > js tutoriel > Principales erreurs Express.js et comment les corriger

Principales erreurs Express.js et comment les corriger

Mary-Kate Olsen
Libérer: 2024-11-27 18:40:14
original
334 Les gens l'ont consulté

Top Express.js Mistakes and How to Fix Them

Express.js est un framework populaire pour créer des applications Web dans Node.js, mais même les développeurs chevronnés rencontrent des erreurs qui peuvent être difficiles à déboguer. Ce guide couvrira certaines des erreurs Express.js les plus courantes, expliquera pourquoi elles se produisent et fournira des correctifs pratiques pour remettre votre application sur la bonne voie.

1. Erreur : impossible de définir les en-têtes après leur envoi

Cette erreur se produit généralement lorsque vous tentez d'envoyer plusieurs réponses pour la même demande. Par exemple, vous pourriez accidentellement appeler res.send() ou res.json() plus d'une fois dans un gestionnaire de route.

Exemple :

app.get('/example', (req, res) => {
    res.send('First response');
    res.send('Second response'); // This will throw the error.
});

Copier après la connexion

Correction :
Assurez-vous de n’envoyer qu’une seule réponse par demande. Utilisez une logique conditionnelle ou des instructions return pour empêcher toute exécution ultérieure après l'envoi d'une réponse.

app.get('/example', (req, res) => {
    if (!req.query.param) {
        return res.status(400).send('Bad Request');
    }
    res.send('Valid Request');
});

Copier après la connexion

2. Erreur : le middleware ne s'exécute pas

Cela se produit lorsque le middleware n'est pas correctement lié ou que next() n'est pas appelé à l'intérieur. Les fonctions middleware doivent explicitement passer le contrôle au prochain middleware ou gestionnaire de route.

Exemple :

app.use((req, res) => {
    console.log('Middleware executed');
    // Forgot to call next()
});
app.get('/test', (req, res) => {
    res.send('Hello, World!');
});

Copier après la connexion

Correction :
Appelez next() à moins que le middleware ne mette fin à la réponse.

app.use((req, res, next) => {
    console.log('Middleware executed');
    next(); // Pass control to the next middleware or route
});

Copier après la connexion

3. Erreur : req.body non défini

Si req.body n'est pas défini, c'est probablement parce que vous avez oublié d'utiliser un middleware d'analyse du corps, tel que express.json() ou express.urlencoded().

Exemple :

app.post('/submit', (req, res) => {
    console.log(req.body); // undefined
});
Copier après la connexion

Correction :

Incluez le middleware d'analyse corporelle dans l'initialisation de votre application.

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.post('/submit', (req, res) => {
    console.log(req.body); // Now it works
    res.send('Data received');
});
Copier après la connexion

4. Erreur : itinéraire introuvable (404)

Cette erreur se produit lorsqu'aucune route ne correspond à la requête entrante. Par défaut, Express ne fournit pas de gestionnaire 404.

Correction :

Ajoutez un middleware fourre-tout à la fin de vos définitions de routes pour gérer les erreurs 404.

app.use((req, res) => {
    res.status(404).send('Page Not Found');
});

Copier après la connexion

5. Erreur : EADDRINUSE (Port utilisé)

Cela se produit lorsqu'un autre processus utilise déjà le port auquel votre application tente de se lier.

Error: listen EADDRINUSE: address already in use :::3000
Copier après la connexion

Correction :
Recherchez et terminez le processus en conflit ou utilisez un autre port. Vous pouvez également gérer l'erreur par programme :

const port = process.env.PORT || 3000;

app.listen(port, () => {
    console.log(`Server running on port ${port}`);
}).on('error', (err) => {
    if (err.code === 'EADDRINUSE') {
        console.error(`Port ${port} is already in use. Please use a different port.`);
    }
});

Copier après la connexion

Les erreurs Express.js peuvent être frustrantes, mais comprendre leurs causes profondes les rend plus faciles à résoudre. Avec ces correctifs courants, vous serez mieux équipé pour déboguer vos applications et assurer le bon fonctionnement de vos projets.

Si vous avez trouvé ce guide utile, cliquez sur l'icône ❤️ et suivez-moi pour plus de trucs et astuces JavaScript !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal