Como adicionar dados em arquivo JSON com Node.js

Neste artigo você vai aprender a como adicionar dados em arquivo JSON com Node, vamos utilizar uma abordagem muito simples!

adicionar dados em arquivo JSON com Node capa

Fala programador(a), beleza? Bora aprender mais sobre Node.js!

Adicionar dados a um arquivo JSON com Node.js é uma tarefa simples e direta.

O formato JSON (JavaScript Object Notation) é amplamente utilizado para armazenar e trocar dados, pois é facilmente lido e escrito por máquinas e humanos.

A seguir, apresentamos uma abordagem passo a passo para adicionar dados a um arquivo JSON no Node.js.

Importe o módulo ‘fs’ (File System) do Node.js: Para ler e escrever arquivos em Node.js, precisamos importar o módulo fs. Adicione o seguinte código no início do seu script:

const fs = require('fs');

Carregue o arquivo JSON: Para carregar o arquivo JSON, basta usar a função fs.readFile() e fornecer o caminho para o arquivo.

Você também precisa especificar o encoding (padrão é UTF-8).

fs.readFile('data.json', 'utf-8', (err, data) => {
    if (err) throw err;
    let json = JSON.parse(data);
    // ...
});
Formação Vibe Coding
Formação Recomendada

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Adicione dados ao objeto JSON: Agora que você já carregou o arquivo JSON em um objeto, pode adicionar novos dados a ele.

Por exemplo, você pode adicionar uma nova propriedade ao objeto:

json.newProperty = "value";

Salve o arquivo JSON: Finalmente, você precisa salvar as alterações no arquivo JSON.

Para fazer isso, basta usar a função fs.writeFile() e fornecer o caminho para o arquivo, o conteúdo atualizado e o encoding (padrão é UTF-8).

fs.writeFile('data.json', JSON.stringify(json), 'utf-8', (err) => {
    if (err) throw err;
    console.log('The file has been saved!');
});

Em resumo, a adição de dados a um arquivo JSON com Node.js é simples e direta, desde que você siga os passos descritos acima.

Com o módulo fs, é possível ler, escrever e manipular arquivos de forma fácil e intuitiva.

Quer aprender mais sobre Node? Confira o vídeo abaixo:

Conclusão

E chegamos ao fim do artigo sobre como adicionar dados em arquivo JSON com Node!

Em conclusão, o artigo apresentou uma abordagem passo a passo para adicionar dados a um arquivo JSON com Node.js.

O uso do módulo fs é fundamental para ler e escrever arquivos em Node.js, e o formato JSON é amplamente utilizado devido à sua facilidade de leitura e escrita tanto por máquinas quanto por humanos.

A adição de dados a um arquivo JSON é simples, basta seguir os passos descritos no artigo: importar o módulo fs, carregar o arquivo JSON, adicionar novos dados ao objeto e salvar as alterações no arquivo.

Com estas informações, você pode começar a manipular arquivos JSON com Node.js de forma eficiente e fácil.

Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Adicionando um item dentro de um array no JSON:

Até aqui a gente adicionou uma propriedade nova no objeto

Mas e quando o teu JSON é uma lista e tu quer só empurrar mais um item pra dentro? Bem comum, tipo uma lista de usuários

A lógica é a mesma: carrega, mexe, salva

A diferença é que agora tu usa o push() no array

fs.readFile(‘data.json’, ‘utf-8’, (err, data) => { if (err) throw err; let json = JSON.parse(data);

json.push({ nome: ‘Matheus’, ativo: true });

fs.writeFile(‘data.json’, JSON.stringify(json), ‘utf-8’, (err) => { if (err) throw err; console.log(‘Item adicionado!’); }); });

Se liga que aqui o json já é o array inteiro, por isso o push cai direto nele

Simples né? =)

Deixando o JSON legível (indentação):

Repara que no JSON.stringify(json) o arquivo sai tudo grudado numa linha só

Funciona, mas é horrível de ler quando tu abre o arquivo

Pra resolver isso o stringify aceita mais dois parâmetros

JSON.stringify(json, null, 2)

O null é o replacer (deixa pra lá por enquanto) e o 2 é a quantidade de espaços da indentação

Aí o teu data.json sai bonitão, formatado, fácil de bater o olho e entender

Detalhe pequeno, mas que faz diferença no dia a dia

E a versão síncrona? Existe também:

O fs.readFile e o fs.writeFile são assíncronos, rodam via callback

Mas às vezes tu quer o código mais direto, lendo de cima pra baixo, sem callback aninhado

Pra isso existem as versões síncronas: readFileSync e writeFileSync

const fs = require(‘fs’);

let json = JSON.parse(fs.readFileSync(‘data.json’, ‘utf-8’));

json.novaPropriedade = ‘valor’;

fs.writeFileSync(‘data.json’, JSON.stringify(json, null, 2), ‘utf-8’);

console.log(‘Arquivo salvo!’);

Muito mais enxuto pra script rápido

Mas tome cuidado: a versão síncrona TRAVA a execução enquanto lê e escreve

Em script pequeno, de linha de comando, tranquilo

Num servidor recebendo várias requisições ao mesmo tempo, evita, porque tu segura todo mundo na fila

Cuidado com o arquivo que ainda não existe:

Já me ferrei uma vez por causa disso

Se tu tentar ler um data.json que ainda nem foi criado, o readFile devolve erro e o script quebra

Caso este erro apareça (algo como ENOENT, no such file or directory), a solução é começar de um estado inicial

Um truque simples é checar antes:

const fs = require(‘fs’);

if (fs.existsSync(‘data.json’)) { json = JSON.parse(fs.readFileSync(‘data.json’, ‘utf-8’)); }

json.push({ nome: ‘Novo item’ });

fs.writeFileSync(‘data.json’, JSON.stringify(json, null, 2), ‘utf-8’);

Assim, se o arquivo não existe, tu parte de um array vazio e o writeFile cria ele do zero

Sem quebrar nada

Perguntas frequentes

Preciso instalar algo pra usar o módulo fs?

Não precisa

O fs é built-in do Node.js, já vem junto

Basta o require(‘fs’) e usar, sem npm install nenhum

Qual a diferença entre JSON.parse e JSON.stringify?

O parse pega o texto lido do arquivo e transforma em objeto/array que tu consegue manipular no JavaScript

O stringify faz o caminho contrário: pega o objeto e vira texto de novo, pra poder salvar no arquivo

Sempre parse na leitura, stringify na escrita

Como eu adiciono sem apagar o que já estava no arquivo?

Esse é o pulo do gato: tu SEMPRE lê o arquivo primeiro, mexe no objeto em memória e só depois salva

Se tu der writeFile direto sem ler antes, tu sobrescreve tudo e perde o conteúdo velho

Leia também

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

Formações

Formação SAAS com IA

Formação SAAS com IA

Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!

  • 291 aulas
  • 18 projetos
  • 24h 17min

Blog | Mais populares