„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Node.js in wenigen Tagen mit KI lernen – Tag 4

Node.js in wenigen Tagen mit KI lernen – Tag 4

Veröffentlicht am 05.11.2024
Durchsuche:923

Learning Node.js in Days with AI - Day 4

Heute habe ich mit Hilfe von ChatGPT weiter Node.js gelernt und wir haben uns auf die asynchrone Programmierung konzentriert. Dies ist eines der wichtigsten Konzepte in Node.js und ich freue mich, dass ich damit begonnen habe, es zu beherrschen.

Theorie

In Node.js ist die asynchrone Programmierung aufgrund der nicht blockierenden, ereignisgesteuerten Architektur von entscheidender Bedeutung. Dies bedeutet, dass Vorgänge wie das Lesen von Dateien, Datenbankabfragen oder Netzwerkanforderungen nicht die Ausführung anderen Codes blockieren, während auf ein Ergebnis gewartet wird.

Wir haben drei Hauptmethoden zur Handhabung asynchroner Vorgänge untersucht:

  1. Rückrufe: Funktionen, die als Argumente an andere Funktionen übergeben werden und ausgeführt werden, sobald ein asynchroner Vorgang abgeschlossen ist.

    const fs = require('fs');
    
    fs.readFile('example.txt', 'utf8', (err, data) => {
        if (err) {
            console.error(err);
            return;
        }
        console.log(data);
    });
    
  2. Promises: Objekte, die den eventuellen Abschluss (oder Fehler) eines asynchronen Vorgangs und den daraus resultierenden Wert darstellen. Versprechen ermöglichen eine Verkettung und machen den Code im Vergleich zu verschachtelten Rückrufen besser lesbar.

    const fs = require('fs').promises;
    
    fs.readFile('example.txt', 'utf8')
        .then(data => {
            console.log(data);
        })
        .catch(err => {
            console.error(err);
        });
    
  3. Async/Await: Syntaktischer Zucker, der auf Promises basiert und das synchrone Schreiben von asynchronem Code ermöglicht.

    const fs = require('fs').promises;
    
    async function readFile() {
        try {
            const data = await fs.readFile('example.txt', 'utf8');
            console.log(data);
        } catch (err) {
            console.error(err);
        }
    }
    
    readFile();
    

Praktische Aufgabe

Heute habe ich geübt, eine Callback-basierte Funktion in eine Promise-basierte Funktion umzuwandeln.

Originalcode mit Rückrufen:

const fs = require('fs');

function readFileCallback(path, callback) {
    fs.readFile(path, 'utf8', (err, data) => {
        if (err) {
            callback(err);
            return;
        }
        callback(null, data);
    });
}

readFileCallback('example.txt', (err, data) => {
    if (err) {
        console.error(err);
        return;
    }
    console.log(data);
});

Konvertierung in Versprechen:

const fs = require('fs').promises;

function readFilePromise(path) {
    return fs.readFile(path, 'utf8');
}

readFilePromise('example.txt')
    .then(data => {
        console.log(data);
    })
    .catch(err => {
        console.error(err);
    });

Unabhängige Aufgabe

Ich habe auch eine asynchrone Funktion mit async/await geschrieben, die den Inhalt einer Datei liest und ihn in der Konsole protokolliert. Wenn ein Fehler auftritt (z. B. Datei nicht gefunden), sollte es den Fehler abfangen und protokollieren.

const fs = require('fs').promises;

async function readFileAsync(path) {
    try {
        const data = await fs.readFile(path, 'utf8');
        console.log(data);
    } catch (err) {
        console.error(err);
    }
}

readFileAsync('example.txt');

Ressourcen

Alle von ChatGPT erstellten Lektionen finden Sie unter: https://king-tri-ton.github.io/learn-nodejs

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/king_triton/learning-nodejs-in-30-days-with-ai-day-4-3o69?1 Bei Verstößen wenden Sie sich bitte an [email protected] um es zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3