Heim >Web-Frontend >js-Tutorial >Die häufigsten Express.js-Fehler und wie man sie behebt

Die häufigsten Express.js-Fehler und wie man sie behebt

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-27 18:40:14296Durchsuche

Top Express.js Mistakes and How to Fix Them

Express.js ist ein beliebtes Framework zum Erstellen von Webanwendungen in Node.js, aber selbst erfahrene Entwickler stoßen auf Fehler, deren Fehlerbehebung schwierig sein kann. Dieser Leitfaden behandelt einige der häufigsten Express.js-Fehler, erklärt, warum sie auftreten, und bietet praktische Lösungen, um Ihre Anwendung wieder auf Kurs zu bringen.

1. Fehler: Header können nach dem Senden nicht festgelegt werden

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, mehrere Antworten für dieselbe Anfrage zu senden. Beispielsweise könnten Sie versehentlich mehr als einmal res.send() oder res.json() in einem Routenhandler aufrufen.

Beispiel:

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

Fix:
Stellen Sie sicher, dass Sie pro Anfrage nur eine Antwort senden. Verwenden Sie bedingte Logik oder Return-Anweisungen, um die weitere Ausführung nach dem Senden einer Antwort zu verhindern.

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

2. Fehler: Middleware wird nicht ausgeführt

Dies geschieht, wenn die Middleware nicht richtig verknüpft ist oder next() darin nicht aufgerufen wird. Middleware-Funktionen müssen die Kontrolle explizit an die nächste Middleware oder den nächsten Routenhandler übergeben.

Beispiel:

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

Behebung:
Rufen Sie next() auf, es sei denn, die Middleware beendet die Antwort.

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

3. Fehler: req.body Undefiniert

Wenn req.body nicht definiert ist, liegt das wahrscheinlich daran, dass Sie vergessen haben, eine Body-Parsing-Middleware wie express.json() oder express.urlencoded() zu verwenden.

Beispiel:

app.post('/submit', (req, res) => {
    console.log(req.body); // undefined
});

Behebung:

Beziehen Sie die Body-Parsing-Middleware in Ihre App-Initialisierung ein.

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');
});

4. Fehler: Route nicht gefunden (404)

Dieser Fehler tritt auf, wenn keine Route mit der eingehenden Anfrage übereinstimmt. Standardmäßig stellt Express keinen 404-Handler bereit.

Behebung:

Fügen Sie am Ende Ihrer Routendefinitionen eine Catch-All-Middleware hinzu, um 404-Fehler zu behandeln.

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

5. Fehler: EADDRINUSE (Port wird verwendet)

Dies geschieht, wenn ein anderer Prozess bereits den Port verwendet, an den Ihre App eine Bindung herstellen möchte.

Error: listen EADDRINUSE: address already in use :::3000

Behebung:
Suchen und beenden Sie den Konfliktprozess oder verwenden Sie einen anderen Port. Sie können den Fehler auch programmgesteuert beheben:

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.`);
    }
});

Express.js-Fehler können frustrierend sein, aber das Verständnis ihrer Grundursachen macht es einfacher, sie zu beheben. Mit diesen allgemeinen Korrekturen sind Sie besser für das Debuggen Ihrer Anwendungen gerüstet und sorgen dafür, dass Ihre Projekte reibungslos laufen.

Wenn Sie diesen Leitfaden hilfreich fanden, klicken Sie auf das ❤️-Symbol und folgen Sie mir für weitere JavaScript-Tipps und -Tricks!

Das obige ist der detaillierte Inhalt vonDie häufigsten Express.js-Fehler und wie man sie behebt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn