Heim >Web-Frontend >js-Tutorial >Die häufigsten Express.js-Fehler und wie man sie behebt
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.
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'); });
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 });
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'); });
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'); });
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!