Während der Anwendungsentwicklung ist die Fehlerbehandlung ein entscheidender Aspekt, um ein reibungsloses Benutzererlebnis zu gewährleisten und unvorhergesehene Probleme zu entschärfen. In der Express.js Umgebung haben Sie mehrere Möglichkeiten, mit Fehlern umzugehen und den Benutzern geeignete Antwortnachrichten bereitzustellen. Hier finden Sie eine Anleitung, wie Sie dies erreichen:
Verwendung Middleware für die globale Fehlerbehandlung
Erstellen Sie eine globale Fehlerbehandlung middleware, indem Sie den folgenden Code am Ende der app.js
oder Hauptdatei Ihrer Express.js Anwendung hinzufügen.
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something went wrong!');
});
Spezifischer Umgang mit Fehlern Route
In einem bestimmten Fall route können Sie einen -Block verwenden, try
um catch
Fehler abzufangen und entsprechende Antwortnachrichten bereitzustellen.
app.get('/profile/:id', async(req, res) => {
try {
const user = await getUserById(req.params.id);
res.json(user);
} catch(error) {
res.status(404).send('User not found!');
}
});
Verwendung zentraler Fehler Middleware
Erstellen Sie einen zentralen Fehler, middleware um Fehler zu behandeln, die aus verschiedenen Quellen stammen route.
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
app.use((err, req, res, next) => {
res.status(err.status || 500);
res.send(err.message || 'Something went wrong');
});
Umgang mit asynchronen Fehlern
Im Falle einer asynchronen Behandlung verwenden Sie die next
Methode, um Fehler an die globale Fehlerbehandlung zu übergeben middleware.
app.get('/data',(req, res, next) => {
fetchDataFromDatabase((err, data) => {
if(err) {
return next(err);
}
res.json(data);
});
});
Abschluss
Die Fehlerbehandlung ist ein integraler Bestandteil der Express.js Anwendungsentwicklung. Durch die Verwendung von middleware, die Behandlung spezifischer Fehler und die Bereitstellung geeigneter Antwortnachrichten können Sie Ihren Benutzern ein reibungsloses und zuverlässiges Anwendungserlebnis bieten.