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.