Cursos e QualificaçõesCursos Livres

Como criar seu primeiro projeto CRUD completo: passo a passo

Aprenda como criar seu primeiro projeto CRUD completo com Node.js, API REST e banco de dados. Veja o passo a passo para implementar Create, Read, Update e Delete.



Em resumo:

  • CRUD significa Create, Read, Update e Delete, operações básicas para criar, consultar, atualizar e excluir dados.
  • Node.js, Express e SQLite permitem construir uma API simples para praticar a integração entre aplicação e banco de dados.
  • Um CRUD é uma boa base para estudar desenvolvimento back-end, APIs REST, métodos HTTP e manipulação de dados.

Veja mais informações a seguir!

+ Quer aprender IA? Conheça os cursos da Allevo Tech!

Criar um projeto CRUD é uma das formas mais práticas de aprender como uma aplicação se comunica com um banco de dados.

A partir de um exemplo simples, é possível entender conceitos importantes de desenvolvimento back-end, APIs e operações com dados.

CRUD é uma sigla para Create, Read, Update e Delete, quatro operações básicas realizadas em muitos sistemas que armazenam informações.

Neste guia, você vai aprender como criar um projeto CRUD completo usando Node.js, API REST e banco de dados, desde a configuração do ambiente até a criação das principais rotas.

Teste vocacional

Qual carreira combina com o seu perfil?

Responda as perguntas e descubra o curso certo e as bolsas ideais para você!

+ O que é arquitetura de software? Entenda o conceito e sua importância

O que é CRUD?

CRUD representa quatro operações fundamentais para trabalhar com dados:

  • Create: criar ou cadastrar um novo registro;
  • Read: consultar registros existentes;
  • Update: atualizar informações armazenadas;
  • Delete: excluir um registro.

Essas operações aparecem em diversos tipos de sistemas. Um cadastro de alunos, por exemplo, pode permitir adicionar um estudante, consultar seus dados, alterar informações e remover o cadastro.

Por isso, entender CRUD é uma etapa importante para quem está começando a desenvolver aplicações que utilizam bancos de dados.

+ Estude com a Trilha de Tecnologia para Engenheiro de Software na Allevo Tech

Como funciona um projeto CRUD?

Em uma aplicação web, o fluxo costuma envolver três componentes principais:

  1. Cliente: envia uma solicitação, como cadastrar ou consultar um dado.
  2. API: recebe a solicitação e executa a lógica necessária.
  3. Banco de dados: armazena ou fornece as informações solicitadas.

Um exemplo simples seria:

Aplicação → API Node.js → Banco de dados

Quando o usuário cadastra um produto, por exemplo, a aplicação envia os dados para a API. O servidor processa a solicitação e registra as informações no banco de dados.

+ O que é API REST: como funciona e por que desenvolvedores devem aprendê-la

O que você precisa para criar um CRUD?

Para acompanhar o projeto, é interessante ter conhecimentos básicos de:

  • lógica de programação;
  • JavaScript;
  • HTTP;
  • APIs;
  • bancos de dados.

Neste exemplo, serão utilizados:

  • Node.js para executar JavaScript no back-end;
  • Express para criar a API;
  • SQLite como banco de dados;
  • Insomnia ou Postman para testar as requisições.

O SQLite é uma opção prática para um primeiro projeto porque não exige a configuração de um servidor de banco de dados separado.

Passo 1: criar o projeto Node.js

Primeiro, crie uma pasta para o projeto e abra o terminal dentro dela.

Depois, execute:

mkdir projeto-crud
cd projeto-crud
npm init -y

O comando npm init -y cria o arquivo package.json, utilizado para armazenar informações e dependências do projeto.

Passo 2: instalar as dependências

Agora, instale o Express e a biblioteca utilizada para trabalhar com SQLite:

npm install express sqlite3

Para facilitar o desenvolvimento, também é possível instalar o Nodemon:

npm install --save-dev nodemon

O Nodemon reinicia automaticamente o servidor quando um arquivo do projeto é alterado.

Passo 3: criar a estrutura do projeto

Uma estrutura simples pode ser organizada desta forma:

projeto-crud/
├── node_modules/
├── database.js
├── server.js
├── package.json
└── package-lock.json

O arquivo server.js ficará responsável pela API, enquanto database.js fará a configuração do banco de dados.

Passo 4: configurar o banco de dados

No arquivo database.js, configure uma conexão com o SQLite:

const sqlite3 = require('sqlite3').verbose();

const db = new sqlite3.Database('./database.sqlite');

db.run(`
  CREATE TABLE IF NOT EXISTS produtos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    nome TEXT NOT NULL,
    preco REAL NOT NULL
  )
`);

module.exports = db;

Nesse exemplo, será criada uma tabela chamada produtos.

Cada produto terá três campos:

  • id: identificador único;
  • nome: nome do produto;
  • preco: preço do produto.

O id será gerado automaticamente pelo banco de dados.

Passo 5: criar o servidor com Node.js

Agora, crie o arquivo server.js:

const express = require('express');
const db = require('./database');

const app = express();

app.use(express.json());

const PORT = 3000;

app.listen(PORT, () => {
  console.log(`Servidor rodando na porta ${PORT}`);
});

O express.json() permite que a aplicação receba dados enviados em formato JSON.

Para iniciar o servidor, execute:

node server.js

Se tudo estiver funcionando, o terminal deverá mostrar uma mensagem indicando que o servidor está rodando na porta 3000.

Passo 6: criar a operação Create

A primeira operação do CRUD é o Create, utilizada para cadastrar novos dados.

No server.js, adicione:

app.post('/produtos', (req, res) => {
  const { nome, preco } = req.body;

  const sql = `
    INSERT INTO produtos (nome, preco)
    VALUES (?, ?)
  `;

  db.run(sql, [nome, preco], function (err) {
    if (err) {
      return res.status(500).json({
        erro: 'Erro ao cadastrar produto'
      });
    }

    res.status(201).json({
      id: this.lastID,
      nome,
      preco
    });
  });
});

Agora, uma requisição POST para /produtos pode cadastrar um novo produto.

O corpo da requisição pode ser:

{
  "nome": "Notebook",
  "preco": 3500
}

A API receberá esses dados e os armazenará no banco.

Passo 7: criar a operação Read

A operação Read permite consultar os dados existentes.

Para buscar todos os produtos, utilize:

app.get('/produtos', (req, res) => {
  const sql = 'SELECT * FROM produtos';

  db.all(sql, [], (err, rows) => {
    if (err) {
      return res.status(500).json({
        erro: 'Erro ao buscar produtos'
      });
    }

    res.json(rows);
  });
});

Agora, uma requisição:

GET /produtos

pode retornar:

[
  {
    "id": 1,
    "nome": "Notebook",
    "preco": 3500
  }
]

Também é possível criar uma rota para consultar um produto específico:

app.get('/produtos/:id', (req, res) => {
  const { id } = req.params;

  db.get(
    'SELECT * FROM produtos WHERE id = ?',
    [id],
    (err, row) => {
      if (err) {
        return res.status(500).json({
          erro: 'Erro ao buscar produto'
        });
      }

      if (!row) {
        return res.status(404).json({
          erro: 'Produto não encontrado'
        });
      }

      res.json(row);
    }
  );
});

Nesse caso, uma requisição para:

GET /produtos/1

buscará o produto cujo id seja igual a 1.

Passo 8: criar a operação Update

O Update serve para modificar um registro existente.

Para atualizar um produto:

app.put('/produtos/:id', (req, res) => {
  const { id } = req.params;
  const { nome, preco } = req.body;

  const sql = `
    UPDATE produtos
    SET nome = ?, preco = ?
    WHERE id = ?
  `;

  db.run(sql, [nome, preco, id], function (err) {
    if (err) {
      return res.status(500).json({
        erro: 'Erro ao atualizar produto'
      });
    }

    if (this.changes === 0) {
      return res.status(404).json({
        erro: 'Produto não encontrado'
      });
    }

    res.json({
      mensagem: 'Produto atualizado com sucesso'
    });
  });
});

A requisição pode ser:

PUT /produtos/1

com o seguinte JSON:

{
  "nome": "Notebook atualizado",
  "preco": 3200
}

Assim, os dados do produto de id 1 serão alterados.

Passo 9: criar a operação Delete

Por fim, o Delete permite excluir um registro.

Adicione:

app.delete('/produtos/:id', (req, res) => {
  const { id } = req.params;

  db.run(
    'DELETE FROM produtos WHERE id = ?',
    [id],
    function (err) {
      if (err) {
        return res.status(500).json({
          erro: 'Erro ao excluir produto'
        });
      }

      if (this.changes === 0) {
        return res.status(404).json({
          erro: 'Produto não encontrado'
        });
      }

      res.json({
        mensagem: 'Produto excluído com sucesso'
      });
    }
  );
});

Agora, uma requisição:

DELETE /produtos/1

excluirá o registro correspondente.

+ O que é DOM no JavaScript? Entenda a estrutura das páginas web

CRUD completo: quais são as rotas?

Depois de criar todas as operações, a API terá uma estrutura semelhante a esta:

OperaçãoMétodo HTTPRotaFunção
CreatePOST/produtosCriar produto
ReadGET/produtosListar produtos
ReadGET/produtos/:idBuscar um produto
UpdatePUT/produtos/:idAtualizar produto
DeleteDELETE/produtos/:idExcluir produto

Essa organização segue um padrão comum em APIs REST.

+ Como trabalhar com DevOps: o que faz o profissional e como começar

Como testar o projeto CRUD?

Uma forma simples de testar a API é utilizar ferramentas como Postman ou Insomnia.

Você pode começar enviando uma requisição POST para:

http://localhost:3000/produtos

Com:

{
  "nome": "Teclado",
  "preco": 150
}

Depois, faça uma requisição GET para:

http://localhost:3000/produtos

O produto cadastrado deverá aparecer na resposta.

Em seguida, teste as operações de atualização e exclusão.

Checklist para testar o CRUD

  • Criar um produto com POST;
  • Listar produtos com GET;
  • Consultar um produto pelo id;
  • Alterar um produto com PUT;
  • Excluir um produto com DELETE;
  • Testar uma busca por um id inexistente;
  • Verificar as respostas de erro da API.

+ Aprender HTML e CSS ainda vale a pena em 2026?

O que você aprendeu com esse projeto?

Ao construir um CRUD completo, você entra em contato com vários conceitos importantes do desenvolvimento de software.

Entre eles estão:

  • criação de uma API REST;
  • utilização de métodos HTTP;
  • criação e consulta de registros;
  • atualização e exclusão de dados;
  • integração entre Node.js e banco de dados;
  • utilização de parâmetros em requisições;
  • tratamento básico de erros;
  • estruturação de rotas.

O projeto também serve como base para aplicações mais complexas.

+ Transição de carreira para tecnologia após os 30: guia completo para começar

Como evoluir seu primeiro CRUD?

Depois de entender o funcionamento básico, você pode adicionar novos recursos ao projeto.

Algumas possibilidades são:

Validação de dados

Verifique se campos obrigatórios foram preenchidos e se valores possuem formatos válidos antes de enviá-los ao banco.

Autenticação

Adicione cadastro e login de usuários para controlar quem pode acessar determinadas operações.

Front-end

Crie uma interface com HTML, CSS e JavaScript ou utilize um framework como React para consumir a API.

Banco de dados mais robusto

Depois de dominar o SQLite, você pode experimentar bancos como PostgreSQL ou MySQL.

Organização do código

Separe rotas, controladores, serviços e acesso ao banco de dados em diferentes arquivos. Essa estrutura facilita a manutenção de projetos maiores.

+ O que é JavaScript e para que serve? Guia para iniciantes

Por que aprender CRUD é importante?

O CRUD apresenta uma estrutura encontrada em muitos sistemas que trabalham com dados.

Ao construir um projeto desse tipo, o estudante consegue visualizar na prática como uma aplicação recebe uma requisição, processa informações e interage com um banco de dados.

Por isso, um projeto CRUD pode funcionar como exercício para desenvolver conhecimentos em Node.js, APIs, bancos de dados e desenvolvimento back-end.

O mais importante no primeiro projeto é compreender o fluxo completo: requisição → API → banco de dados → resposta. Depois, novos recursos podem ser adicionados gradualmente.

+ O que é TypeScript? Entenda por que a linguagem ganhou espaço

Quer avançar na sua carreira em tecnologia?

Se você já deu os primeiros passos com programação, APIs e bancos de dados, pode continuar sua jornada de aprendizado com conteúdos voltados às principais áreas da tecnologia.

Conheça as trilhas de aprendizagem da Allevo Tech e encontre cursos para desenvolver suas habilidades e acompanhar as demandas do mercado de tecnologia.

Logo do Querobolsa

Gostando da matéria?

Inscreva-se e receba nossos principais posts no seu e-mail

Banner FOQA Últimas Notícias

Revista Vídeos

As profissões mais bem pagas em 2026

Postado em 31/03/2026

Como estudar pro ENEM 2026 do ZERO

Postado em 23/04/2026


Pronto para estudar pagando menos?

Bolsas de até 80% de desconto em milhares de faculdades por todo o Brasil.
Encontrar minha bolsa