Uczymy się usuwać pliki w Node.js używając modułu filesystem oraz fs promises. Do dzieła.

Usuniemy plik clearme.txt:

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

function file(filename) {
    return path.join(__dirname, "files", filename);
}

let fpath = file("clearme.txt");

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.');
    }
  });

Teraz to samo z modułem fs.promises:

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

function file(filename) {
    return path.join(__dirname, "files", filename);
}

let fpath = file("clearme.txt");


async function deleteFile(filePath) {
  try {
    await fs.unlink(filePath);
    console.log(`File ${filePath} has been deleted.`);
  } catch (err) {
    console.error(err);
  }
}

deleteFile(fpath);

Oczywiście nikt nie każe nam używać składni async/await, 'then’ czasami wręcz wygląda nawet czytelniej:

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

function file(filename) {
    return path.join(__dirname, "files", filename);
}

let fpath = file("clearme.txt");


fs.unlink(fpath)
.then(() => console.log("File deleted"))
.catch((err) => console.log(err.message));

Funkcja unlink zwraca tutaj undefined, ale jest obiektem thenable, który dopiero jak zakończy swoją operację z sukcesem wykonuje blok then.