Wie man Node.js-Anwendungen schreibt und mit Fehlertoleranz umgeht

PHPz
Freigeben: 2023-04-26 09:38:38
Original
566 Leute haben es durchsucht

Node.js ist eine beliebte serverseitige Programmiersprache, die häufig zum Erstellen verschiedener Arten von Webanwendungen verwendet wird. Da die Erstellung von Webanwendungen immer anspruchsvoller wird, erfreuen sich Node.js-Anwendungen, die Fehlertoleranz beherrschen, immer größerer Beliebtheit. In diesem Artikel erfahren Sie ausführlich, wie Sie Node.js-Anwendungen schreiben und mit Fehlertoleranz umgehen.

1. Fehlerbehandlung

Egal wie robust ein Programm ist, Fehler sind unvermeidlich. Wenn Sie Fehler nicht richtig behandeln, kann Ihr Programm eine Reihe von Problemen verursachen, wie z. B. Programmabstürze, unfreundliches Verhalten gegenüber Benutzern usw. Es gibt mehrere Möglichkeiten, mit Fehlern umzugehen:

1. Die Verwendung der try...catch-Anweisung

try...catch-Anweisung ist die Standardmethode zur Fehlerbehandlung. Code, der Fehler verursachen kann, wird im Try-Codeblock ausgeführt. Tritt ein Fehler auf, wird dieser vom Catch-Codeblock abgefangen und verarbeitet. Das Folgende ist ein Beispiel für die Behandlung von Dateilesefehlern:

try {
  let file = fs.readFileSync('non-existent-file.txt', 'utf8');
} catch (err) {
  console.error('Error:', err);
}
Nach dem Login kopieren

2. Verwendung von Rückruffunktionen

In Node.js ist es sehr üblich, Rückruffunktionen zu aktivieren. In der Rückruffunktion ist der erste Parameter normalerweise das Fehlerobjekt. Wenn kein Fehler auftritt, ist der erste Parameter null. Das Folgende ist ein Beispiel für die Verwendung einer Rückruffunktion zur Behandlung von Fehlern beim Lesen einer Datei:

fs.readFile('non-existent-file.txt', 'utf8', (err, data) => {
  if (err) {
    console.error('Error:', err);
  } else {
    console.log(data);
  }
});
Nach dem Login kopieren

3. Mit Promise können Fehler bei asynchronen Vorgängen problemlos behandelt werden. Verwenden Sie die Methode Promise.then(), um nach Fehlern zu suchen. Das Folgende ist ein Beispiel für die Verwendung von Promise:

const readFileAsync = function (filename, encoding) {
  return new Promise(function (resolve, reject) {
    fs.readFile(filename, encoding, function (err, result) {
      if (err) {
        reject(err);
      } else {
        resolve(result);
      }
    });
  });
};

readFileAsync('non-existent-file.txt', 'utf8')
  .then(data => console.log(data))
  .catch(err => console.error('Error:', err));
Nach dem Login kopieren

2. Ausnahmebehandlungsmodul

Node.js stellt ein globales Ausnahmebehandlungsmodul bereit: process.on('uncaughtException', … ) , wird zum Abfangen nicht behandelter Ausnahmen verwendet. Mit diesem Modul können Entwickler bestimmte Aktionen ausführen, wenn im Programm ein Fehler auftritt. Hier ist ein einfaches Beispiel:

process.on('uncaughtException', function (err) {
  console.error('Error:', err);
});
Nach dem Login kopieren

Die Verwendung dieses Moduls sollte jedoch nicht die primäre Möglichkeit zur Fehlerbehandlung sein. Wenn Ihr Code viele nicht behandelte Ausnahmen enthält, wird es schwieriger, Fehler in Ihrem Programm zu behandeln. Seien Sie vorsichtig, wenn Sie dieses Modul verwenden.

3. Fehlerprotokollierung

Beim Umgang mit Fehlern ist es nicht ratsam, die Fehlerprotokollliste im Speicher aufzuzeichnen. Ein besserer Ansatz besteht daher darin, Fehler in einer Datei zu protokollieren. Hier ist ein Beispiel für die Verwendung der Errorhandler-Middleware zum Protokollieren von Node.js-Fehlern:

const express = require('express');
const errorHandler = require('errorhandler');
const app = express();

app.use(errorHandler({
  log: true
}));
Nach dem Login kopieren

errorhandler-Middleware ermöglicht die Fehlerprotokollierung in der Konsole und Datei.

4. Wiederholungsmechanismus

Wenn ein Vorgang nicht erfolgreich sein kann, geben wir normalerweise einen Fehler aus. In einigen Fällen, beispielsweise bei Netzwerkproblemen, kann es jedoch erforderlich sein, den Vorgang erneut zu versuchen. In diesem Fall ist der Wiederholungsmechanismus sehr wichtig.

Das Folgende ist eine JavaScript-Funktion, die zur Fehlerbehandlung und zum wiederholten Versuch verwendet werden kann:

const retry = require('retry');
const fs = require('fs');

const readfileWithRetry = (filename) => {
  const operation = retry.operation();

  return new Promise((resolve, reject) => {
    operation.attempt(currentAttempt => {
      fs.readFile(filename, 'utf-8', (err, fileData) => {
        if (!err) {
          resolve(fileData);
        } else if (operation.retry(err)) {
          console.error('Error:', err);
          console.error('retrying');
        } else {
          reject(operation.mainError());
        }
      });
    });
  });
};
Nach dem Login kopieren

5. Fazit

In diesem Artikel Wir haben gelernt, wie man mit Fehlern und Fehlertoleranz in Node.js umgeht. Während Qualität wichtig ist, wenn es darum geht, möglichst robusten Code zu schreiben, ist sie auch sehr wichtig, wenn es um den Umgang mit Fehlern geht. Der Umgang mit Fehlern ist entscheidend für die Verbesserung der Anwendungsleistung und -zuverlässigkeit.

Das obige ist der detaillierte Inhalt vonWie man Node.js-Anwendungen schreibt und mit Fehlertoleranz umgeht. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!