projeto com nodejs
Blog

Como Salvar Dados Sem Banco de Dados? Projeto Completo com Node.js e JSON

Muita gente acredita que é obrigatório aprender MySQL logo no início para conseguir salvar informações em uma aplicação.

Mas a verdade é que, antes mesmo de trabalhar com bancos de dados relacionais, você pode aprender os conceitos de persistência utilizando apenas Node.js, Express e arquivos JSON.

Neste projeto prático, vamos construir uma aplicação de uma cafeteria e entender como os dados saem do Frontend, passam pelo Backend e são armazenados em um arquivo JSON.

Além de ser um excelente projeto para portfólio, ele ajuda a compreender como aplicações reais funcionam.


Como Funciona a Persistência de Dados?

Quando o usuário realiza um pedido na aplicação, o JavaScript captura as informações do formulário e envia os dados para o servidor utilizando a Fetch API.

No Backend, o Express recebe essas informações através de uma rota POST e, utilizando o módulo File System (FS) do Node.js, salva tudo em um arquivo JSON.

O fluxo é simples:

Frontend → Fetch API → Express → Arquivo JSON

Embora não seja um banco de dados tradicional, o conceito de persistência é exatamente o mesmo utilizado em aplicações maiores.


Criando o Servidor com Node.js e Express

Primeiro criamos o servidor utilizando o Express.

Também configuramos:

  • express.json()
  • express.static()
  • Porta 3000
  • Pasta public
  • Middleware para trabalhar com JSON

Com isso, conseguimos servir os arquivos HTML, CSS e JavaScript e preparar o Backend para receber informações.


Lendo os Dados do Arquivo JSON

Para acessar os pedidos já armazenados, utilizamos o módulo File System do Node.js.

Primeiro fazemos a leitura:

fs.readFileSync()

Em seguida, transformamos o conteúdo do arquivo em objetos JavaScript:

JSON.parse()

Assim podemos manipular os dados normalmente.


Salvando Informações em JSON

Depois de ler os dados existentes, adicionamos um novo pedido utilizando:

push()

E então fazemos a gravação utilizando:

fs.writeFileSync()

Para salvar corretamente, convertemos os objetos em JSON:

JSON.stringify()

Dessa forma os dados permanecem armazenados mesmo após reiniciar a aplicação.


Criando uma Rota POST

A rota POST é responsável por receber os dados enviados pelo Frontend.

Exemplo:

app.post('/salvar', (req, res) => {

})

As informações chegam através do:

req.body

Após validar os dados, chamamos a função responsável por gravar tudo no arquivo JSON.


Criando uma Rota GET

Também criamos uma rota para listar os pedidos armazenados:

app.get('/ler', (req, res) => {

})

Essa rota devolve os dados salvos para o Frontend.


Construindo o Frontend

No Frontend utilizamos:

  • HTML
  • CSS
  • JavaScript
  • DOM
  • Eventos
  • addEventListener
  • Arrays
  • Objetos

Os produtos são adicionados em um carrinho e o valor total é calculado automaticamente.


Enviando Dados com Fetch API

Ao clicar em “Salvar Pedido”, utilizamos:

fetch()

Enviando:

  • método POST;
  • headers;
  • application/json;
  • JSON.stringify().

O servidor recebe as informações e faz a persistência dos dados.


Por Que Aprender Assim?

Aprender persistência utilizando arquivos JSON é uma excelente forma de entender os conceitos antes de partir para bancos de dados como:

  • MySQL
  • PostgreSQL
  • SQL Server
  • MongoDB

Quando você compreende como os dados trafegam entre Frontend e Backend, trocar o arquivo JSON por um banco de dados é apenas uma mudança de ferramenta.

O conceito continua sendo o mesmo.


Conclusão

Você não precisa começar pelo MySQL para aprender persistência de dados.

Utilizando apenas Node.js, Express e JSON, é possível construir aplicações completas e entender como os dados são enviados, processados e armazenados.

Mais importante do que decorar comandos é compreender como a comunicação entre cliente e servidor acontece.

É esse entendimento que vai facilitar o aprendizado de qualquer tecnologia no futuro.


Assista ao Projeto Completo

🎥 Vídeo completo no YouTube:


Tecnologias Utilizadas

  • JavaScript
  • Node.js
  • Express
  • JSON
  • Fetch API
  • HTML
  • CSS
  • DOM
  • Eventos
  • addEventListener
  • Arrays
  • Objetos
  • Frontend
  • Backend
  • API REST
  • File System (FS)

Leave a Reply

Your email address will not be published. Required fields are marked *