Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sfida: Operazioni sul File System | Creazione di Applicazioni Console con Node.js
Sviluppo Backend con Node.js ed Express.js

Sfida: Operazioni sul File System

Scorri per mostrare il menu

Obiettivo

Padronanza nell'automazione della gestione delle attività. Sviluppo di un'applicazione che raccoglie attività da una fonte, ne estrae il contenuto e le integra in un altro file. La soluzione deve anche gestire eventuali errori durante il processo.

Attività

Immagina di avere due file:

  • tasks.txt, che contiene un elenco di attività esistenti;
  • new-task.txt, che contiene una singola attività da aggiungere a tasks.txt.

Seguire questi passaggi per completare la sfida:

  1. Preparazione dell'ambiente di lavoro
  • Creare una nuova cartella sul computer;
  • Aprirla con l'editor di codice preferito.
  1. Creazione di tasks.txt
  • Creare un file chiamato tasks.txt;

  • Aggiungere le seguenti attività, oppure scaricare il file già pronto:

    tasks.txt

Contenuto:

  • Teach a goldfish to play chess;
  • Build a sandcastle in your living room;
  • Create a song 🎶 using only sounds from nature.
  1. Creazione di new-task.txt

    • Creare un file chiamato new-task.txt;
  • Aggiungere la seguente attività, oppure scaricare il file già pronto:

    new-task.txt

Contenuto:

  • Invent a new dance move and perform it in public.
  1. Creazione di app.js
  • Importazione del modulo fs per la gestione dei file;
    • Utilizzo di readFile() per leggere il contenuto di new-task.txt;
  • Gestione delle operazioni riuscite e fallite tramite .then() e .catch();
  • All'interno del blocco .then(), utilizzo di appendFile() per aggiungere il contenuto a tasks.txt;
  • Aggiunta di un carattere di nuova riga (\n) dopo l'attività inserita.
  1. Esecuzione dell'applicazione
  • Salvataggio di app.js;
  • Apertura del terminale ed esecuzione del comando:
node app

Se preferisci utilizzare l'editor di codice qui sotto, tieni presente che non riconosce i tuoi file e non mostrerà i tuoi progressi.

123456789
const fs = require("fs").___; fs.___("new-task.txt", "utf-8") .then(___ => { return fs.___("tasks.txt", ___ + ___); }) .___((error) => { console.log("Error:", error); });
Suggerimento
expand arrow
  1. Importare il modulo fs per lavorare con i file.
  2. Utilizzare fs.readFile("new-task.txt", "utf-8") per leggere il contenuto dal file new-task.txt.
  3. Collegare un .then() per gestire la lettura avvenuta con successo del contenuto del file.
  4. Nel blocco .then(), fornire una funzione di callback che riceve il contenuto come argomento.
  5. All'interno del blocco .then() della promise readFile, restituire il risultato dell'utilizzo di fs.appendFile per aggiungere il contenuto al file tasks.txt.
  6. Ricordarsi di includere un carattere di nuova riga \n per separare il contenuto aggiunto.
  7. Dopo il blocco .then() dell'operazione appendFile, collegare un blocco .catch() per gestire eventuali errori che potrebbero verificarsi nell'intera catena.
  8. Nel blocco .catch(), fornire una funzione di callback che riceve un parametro di errore.
  9. All'interno del blocco .catch(), registrare un messaggio di errore insieme all'errore ricevuto.
  10. Eseguire lo script utilizzando Node.js digitando node app.
Soluzione
expand arrow
const fs = require("fs").promises;

fs.readFile("new-task.txt", "utf-8")
  .then((content) => {
    return fs.appendFile("tasks.txt", content + "\n");
  })
  .catch((error) => {
    console.log("Error occurred:", error);
  });
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sfida: Operazioni sul File System

Obiettivo

Padronanza nell'automazione della gestione delle attività. Sviluppo di un'applicazione che raccoglie attività da una fonte, ne estrae il contenuto e le integra in un altro file. La soluzione deve anche gestire eventuali errori durante il processo.

Attività

Immagina di avere due file:

  • tasks.txt, che contiene un elenco di attività esistenti;
  • new-task.txt, che contiene una singola attività da aggiungere a tasks.txt.

Seguire questi passaggi per completare la sfida:

  1. Preparazione dell'ambiente di lavoro
  • Creare una nuova cartella sul computer;
  • Aprirla con l'editor di codice preferito.
  1. Creazione di tasks.txt
  • Creare un file chiamato tasks.txt;

  • Aggiungere le seguenti attività, oppure scaricare il file già pronto:

    tasks.txt

Contenuto:

  • Teach a goldfish to play chess;
  • Build a sandcastle in your living room;
  • Create a song 🎶 using only sounds from nature.
  1. Creazione di new-task.txt

    • Creare un file chiamato new-task.txt;
  • Aggiungere la seguente attività, oppure scaricare il file già pronto:

    new-task.txt

Contenuto:

  • Invent a new dance move and perform it in public.
  1. Creazione di app.js
  • Importazione del modulo fs per la gestione dei file;
    • Utilizzo di readFile() per leggere il contenuto di new-task.txt;
  • Gestione delle operazioni riuscite e fallite tramite .then() e .catch();
  • All'interno del blocco .then(), utilizzo di appendFile() per aggiungere il contenuto a tasks.txt;
  • Aggiunta di un carattere di nuova riga (\n) dopo l'attività inserita.
  1. Esecuzione dell'applicazione
  • Salvataggio di app.js;
  • Apertura del terminale ed esecuzione del comando:
node app

Se preferisci utilizzare l'editor di codice qui sotto, tieni presente che non riconosce i tuoi file e non mostrerà i tuoi progressi.

123456789
const fs = require("fs").___; fs.___("new-task.txt", "utf-8") .then(___ => { return fs.___("tasks.txt", ___ + ___); }) .___((error) => { console.log("Error:", error); });
Suggerimento
expand arrow
  1. Importare il modulo fs per lavorare con i file.
  2. Utilizzare fs.readFile("new-task.txt", "utf-8") per leggere il contenuto dal file new-task.txt.
  3. Collegare un .then() per gestire la lettura avvenuta con successo del contenuto del file.
  4. Nel blocco .then(), fornire una funzione di callback che riceve il contenuto come argomento.
  5. All'interno del blocco .then() della promise readFile, restituire il risultato dell'utilizzo di fs.appendFile per aggiungere il contenuto al file tasks.txt.
  6. Ricordarsi di includere un carattere di nuova riga \n per separare il contenuto aggiunto.
  7. Dopo il blocco .then() dell'operazione appendFile, collegare un blocco .catch() per gestire eventuali errori che potrebbero verificarsi nell'intera catena.
  8. Nel blocco .catch(), fornire una funzione di callback che riceve un parametro di errore.
  9. All'interno del blocco .catch(), registrare un messaggio di errore insieme all'errore ricevuto.
  10. Eseguire lo script utilizzando Node.js digitando node app.
Soluzione
expand arrow
const fs = require("fs").promises;

fs.readFile("new-task.txt", "utf-8")
  .then((content) => {
    return fs.appendFile("tasks.txt", content + "\n");
  })
  .catch((error) => {
    console.log("Error occurred:", error);
  });
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
some-alt