Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Desafio: Operações do Sistema de Arquivos | Construindo Aplicações de Console com Node.js
Desenvolvimento Backend com Node.js e Express.js

Desafio: Operações do Sistema de Arquivos

Deslize para mostrar o menu

Objetivo

Domínio da automação de gerenciamento de tarefas. O objetivo é desenvolver uma aplicação que reúna tarefas de uma fonte, extraia seu conteúdo e as integre em outro arquivo. A solução também deve lidar com possíveis erros durante o processo.

Tarefa

Imagine que você possui dois arquivos:

  • tasks.txt, que contém uma lista de tarefas existentes;
  • new-task.txt, que contém uma única tarefa que deve ser adicionada ao tasks.txt.

Siga estes passos para concluir o desafio:

  1. Prepare seu ambiente de trabalho
  • Crie uma nova pasta em sua máquina;
    • Abra-a no editor de código de sua preferência.
  1. Crie o tasks.txt
  • Crie um arquivo chamado tasks.txt;

  • Adicione as seguintes tarefas a ele ou faça o download do arquivo preparado:

    tasks.txt

Conteúdo:

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

    • Crie um arquivo chamado new-task.txt;
  • Adicione a seguinte tarefa a ele ou faça o download do arquivo preparado:

    new-task.txt

Conteúdo:

  • Invent a new dance move and perform it in public.
  1. Crie o app.js
  • Importe o módulo fs para trabalhar com arquivos;
    • Utilize readFile() para ler o conteúdo de new-task.txt;
    • Trate operações bem-sucedidas e falhas utilizando .then() e .catch();
  • Dentro do bloco .then(), utilize appendFile() para adicionar o conteúdo ao tasks.txt;
  • Adicione um caractere de nova linha (\n) após a tarefa inserida.
  1. Execute a aplicação
  • Salve o app.js;
  • Abra o terminal e execute:
node app

Se preferir usar o editor de código abaixo, lembre-se de que ele não reconhece seus arquivos e não exibirá seu progresso.

123456789
const fs = require("fs").___; fs.___("new-task.txt", "utf-8") .then(___ => { return fs.___("tasks.txt", ___ + ___); }) .___((error) => { console.log("Error:", error); });
Dica
expand arrow
  1. Importar o módulo fs para trabalhar com arquivos.
  2. Utilizar fs.readFile("new-task.txt", "utf-8") para ler o conteúdo do arquivo new-task.txt.
  3. Encadear um .then() para tratar a leitura bem-sucedida do conteúdo do arquivo.
  4. No bloco .then(), fornecer uma função de callback que recebe o conteúdo como argumento.
  5. Dentro do bloco .then() da promise readFile, retornar o resultado de usar fs.appendFile para adicionar conteúdo ao arquivo tasks.txt.
  6. Lembrar de incluir um caractere de nova linha \n para separar o conteúdo adicionado.
  7. Após o bloco .then() da operação appendFile, encadear um bloco .catch() para tratar possíveis erros em toda a cadeia.
  8. No bloco .catch(), fornecer uma função de callback que recebe um parâmetro de erro.
  9. Dentro do bloco .catch(), registrar uma mensagem de erro junto com o erro recebido.
  10. Executar o script usando Node.js digitando node app.
Solução
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);
  });
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 4
some-alt