Stawiamy pierwsze kroki z modułem fs (filesystem) tworząc nowy katalog. Uczymy się podejścia error-first w node.js. Do dzieła.

Na początku spróbujemy utworzyć katalog files (zakładam, że go nie mamy):

const path = require("path");
const fs = require('fs');

fs.mkdir(path.join(__dirname, "files"), function(err) {
    console.log("Katalog files został utworzony.");
});

Ok, za pierwszym razem zadziała. Teraz próbujemy przechwycić error:

const path = require("path");
const fs = require('fs');

fs.mkdir(path.join(__dirname, "files"), function(err) {

    if(err) {
        console.log(`Nie udało się utworzyć katalogu. Powód: ${err.message}.`);
        throw err;
    }

    console.log("Katalog files został utworzony.");

});

To jest właśnie podejście error-first, chyba tłumaczyć nie trzeba. Aczkolwiek możemy nie chcieć, aby error był zawsze rzucany, bo to wysypie całą aplikację.

const path = require("path");
const fs = require('fs');

fs.mkdir(path.join(__dirname, "files"), function(err) {

    if(err) {

        if(err.code === "EEXIST") {
            console.log("Katalog już istnieje.");
            return;
        }

        console.log(`Nie udało się utworzyć katalogu. Powód: ${err.message}.`);

        throw err;
    }

    console.log("Katalog files został utworzony.");

});

Sytuacja, w której error polega na tym, że folder już istnieje jest obsługiwana – return wywala z funkcji informując, że folder już jest.