Poznajemy sposób na usuwanie plików w node.js eksplorując dalej moduł filesystem z nadzieją na szybkie przekierowanie się na fs.promises, ale najpierw podstawy!
Ten kod już powinniśmy rozumieć:
const fs = require("fs");
const path = require("path");
function file(filename) {
return path.join(__dirname, "files", filename);
}
Tworzymy deleteme.txt w folderze files. Następnie wykonujemy unlink:
var fpath = file("deleteme.txt");
fs.unlink(fpath, (err) => {
if (err) {
console.error(err);
} else {
console.log('File is deleted.');
}
});
Unlink jest asynchroniczne. Mam także unlinkSync, a w ogóle to będziemy używać fs.promises, ale to z czasem. Wykonajmy skrypt raz jeszcze:
const fs = require("fs");
const path = require("path");
function file(filename) {
return path.join(__dirname, "files", filename);
}
var fpath = file("deleteme.txt");
fs.unlink(fpath, (err) => {
if (err) {
console.error(err);
} else {
console.log('File is deleted.');
}
});
// >node .\unlink1.js
// [Error: ENOENT: no such file or directory (...) {
// errno: -4058,
// code: 'ENOENT',
// (...)
// }
Mamy tu kod błędu, który możemy obsłużyć:
fs.unlink(fpath, (err) => {
if (err) {
if(err.code === "ENOENT") {
console.log("File already doesnt exist");
return;
}
console.log(`Failed to delete. Reason: ${err.message}.`);
throw err;
} else {
console.log('File is deleted.');
}
});
Więcej w następnych lekcjach.