Este é um projeto básico de introdução ao uso do banco de dados SQLite com Node.js. Ele demonstra de forma prática as operações fundamentais de banco de dados: criação do arquivo do banco, criação de tabelas, inserção de registros e execução de consultas (SELECT).
Antes de começar, você precisará ter instalado em sua máquina:
- Node.js
- NPM (normalmente instalado junto com o Node.js)
- Abra o terminal e navegue até a pasta do projeto:
cd sqlite - Instale a dependência necessária (o módulo
sqlite3):npm install sqlite3
O projeto está organizado em pastas que demonstram a evolução do aprendizado:
Scripts modulares focados nas operações básicas de banco de dados rodando direto no terminal:
createDb.js: Apenas abre a conexão e cria o arquivo local do banco de dados (escola.db).createTable.js: Conecta ao banco e cria a tabelaalunos(utilizando a instruçãoIF NOT EXISTSpara evitar erros).insert.js: Conecta ao banco, garante a criação da tabela e insere um novo registro (Maria Clara) na tabelaalunos.select.js: Conecta ao banco, executa uma consulta para buscar todas as linhas da tabelaalunose exibe os resultados formatados no console.index.js: O fluxo completo. Conecta ao banco, cria a tabela, insere um registro (Carlos Silva) e em seguida lista todos os alunos cadastrados.
Evolui o projeto para uma aplicação web local utilizando o framework Express. Organiza os scripts em rotas HTTP (como /insert e /select), permitindo interagir com o banco de dados diretamente pelo navegador.
Introduz o uso do motor de templates EJS. Separa a lógica do servidor da interface visual, facilitando a criação de páginas dinâmicas renderizando arquivos .ejs (na pasta views) com os dados das tabelas.
Aplicação web completa com interface responsiva e profissional, implementando todas as operações de banco de dados via HTTP:
app.js: Servidor Express com 6 rotas mapeadas para as operações de CRUD (GET /,POST /insert,GET /select,GET /update/:id,POST /update/:id,POST /delete/:id).views/insert_form.ejs: Formulário de cadastro de novos alunos.views/list.ejs: Tabela responsiva com listagem de alunos, botões de editar e excluir com modal de confirmação.views/update.ejs: Formulário de edição dos dados do aluno.
Interface construída com:
- Bootstrap 5 — layout responsivo, navbar, cards e tabelas
- Bootstrap Icons — ícones nos botões e títulos
- Modal de confirmação na exclusão (sem uso de
alertnativo do navegador)
Para executar:
cd CRUD
node app.jsAcesse http://localhost:3000 no navegador.
Reorganiza o CRUD de alunos em camadas separadas, seguindo o padrão MVC:
app.js: Servidor Express, configura o EJS como view engine e delega as rotas paraalunoRoutes.models/alunoModel.js: Camada de acesso a dados — funçõesinsert,getAll,getById,updateeremoveque conversam diretamente com o SQLite.controllers/alunoController.js: Camada de lógica — recebe as requisições, chama o model e decide qual view renderizar ou para onde redirecionar.routes/alunoRoutes.js: Mapeia as rotas HTTP (/,/insert,/alunos,/update/:id,/delete/:id) para as funções do controller.views/: Templates EJS (insert_form,list,update) reaproveitados do CRUD anterior.
Para executar:
cd MVC
node app.jsAcesse http://localhost:3000 no navegador.
Gabarito do exercício de revisão de cadastro de contatos proposto em aula, cobrindo os conceitos de Express + SQLite + EJS com uma tabela de contatos (nome, telefone e email):
server.js: Servidor Express com duas rotas —GET /(lista os contatos) ePOST /contatos(insere um novo contato).db.js: Conexão com o bancocontatos.dbe criação da tabelacontatos(CREATE TABLE IF NOT EXISTS).views/index.ejs: Formulário de cadastro e listagem dos contatos já inseridos.public/style.css: Estilização da página.
Diferente da pasta MVC, aqui a lógica fica concentrada direto no server.js e db.js, sem separação em controllers/models — a versão mais direta e enxuta do exercício.
Para executar:
cd Revisao-contato
npm install
node server.jsAcesse http://localhost:3000 no navegador.
Refatoração do exercício Revisao-contato, saindo do monolito (server.js + db.js) para o padrão MVC, seguindo a mesma separação de camadas usada na pasta MVC:
server.js: Servidor Express, configura o EJS como view engine e delega as rotas paracontatoRoutes.models/contatoModel.js: Camada de acesso a dados — funções que conversam diretamente com o SQLite (contatos.db).controllers/contatoController.js: Camada de lógica — recebe as requisições, chama o model e decide qual view renderizar ou para onde redirecionar.routes/contatoRoutes.js: Mapeia as rotas HTTP para as funções do controller.views/index.ejsepublic/style.css: Reaproveitados da pastaRevisao-contato.
Para executar:
cd refatoracao-contato-mvc
npm install
node server.jsAcesse http://localhost:3000 no navegador.
Para rodar os arquivos, navegue até a pasta da aula desejada e utilize o comando node seguido do nome do script no terminal.
Por exemplo, para rodar o fluxo completo da aula 1:
cd aula1
node index.jsOu, para apenas consultar os dados já inseridos:
node select.js