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.