Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Usando Arquivos como Armazenamento Simples | Seção
Fundamentos de Node.js

bookUsando Arquivos como Armazenamento Simples

Deslize para mostrar o menu

Até agora, você aprendeu como:

  • Ler dados de um arquivo;
  • Escrever dados em um arquivo;
  • Adicionar novo conteúdo.

Agora é o momento de usar arquivos como um sistema de armazenamento simples.

Por Que Precisamos de Dados Estruturados

Armazenar texto simples não é suficiente para aplicações reais.

Por exemplo:

First note
Second note

Isso é difícil de gerenciar porque:

  • Não é possível atualizar facilmente uma nota específica;
  • Não é possível organizar os dados;
  • Não é possível adicionar informações extras.

Usando JSON para Armazenamento

Para armazenar dados estruturados, utilizamos JSON.

JSON se parece com um objeto JavaScript:

[
  { "text": "First note" },
  { "text": "Second note" }
]

Esse formato permite:

  • Armazenar múltiplos itens;
  • Organizar os dados de forma clara;
  • Trabalhar com eles no código.

Passo 1: Ler Dados de um Arquivo

const fs = require('fs');

const data = fs.readFileSync('notes.json', 'utf-8');

Isso retorna uma string.

Passo 2: Converter JSON para JavaScript

const notes = JSON.parse(data);

Agora notes é um array real que pode ser manipulado.

Passo 3: Atualizar Dados

notes.push({ text: 'New note' });

Adiciona uma nova nota ao array.

Passo 4: Salvar Dados de Volta no Arquivo

fs.writeFileSync('notes.json', JSON.stringify(notes));
  • JSON.stringify converte JavaScript de volta para JSON;
  • o arquivo é atualizado com os novos dados.

Exemplo Completo

const fs = require('fs');

// Read file
const data = fs.readFileSync('notes.json', 'utf-8');

// Convert to JS
const notes = JSON.parse(data);

// Update data
notes.push({ text: 'Learn Node.js' });

// Save back
fs.writeFileSync('notes.json', JSON.stringify(notes));

Tratando a Primeira Execução (Arquivo Vazio)

Se o arquivo não existir ou estiver vazio, o aplicativo irá falhar.

Podemos corrigir isso iniciando com um array vazio:

let notes = [];

try {
  const data = fs.readFileSync('notes.json', 'utf-8');
  notes = JSON.parse(data);
} catch (error) {
  notes = [];
}
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 24

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Seção 1. Capítulo 24
some-alt