Hoje vamos criar juntos o sistema da Loja do Alquimista Valdris — uma loja de poções, ingredientes e itens mágicos. O sistema vai rodar no terminal e conversar com um banco de dados PostgreSQL real.
Ao final da aula você terá um sistema funcionando com:
graph LR
A["⚗️ Passo 1<br/>Preparar o banco"] --> B["🔌 Passo 2<br/>Conectar com Node"]
B --> C["📖 Passo 3<br/>Entender try/catch/finally"]
C --> D["🔍 Passo 4<br/>SELECT - Listar itens"]
D --> E["➕ Passo 5<br/>INSERT - Cadastrar"]
E --> F["✏️ Passo 6<br/>UPDATE - Atualizar"]
F --> G["🗑️ Passo 7<br/>DELETE - Remover"]
G --> H["🎮 Passo 8<br/>Menu completo"]
Antes de começar, crie a pasta e instale os pacotes:
mkdir loja-alquimista
cd loja-alquimista
npm init -y
npm install pg prompt-sync
Crie o arquivo principal:
code app.js
Abra o pgAdmin, conecte no servidor e abra o Query Tool.
Primeiro, crie o banco:
CREATE DATABASE alquimista_db;
Agora conecte no banco alquimista_db — clique nele no painel esquerdo — e execute:
CREATE TABLE itens (
id SERIAL PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
tipo VARCHAR(50) NOT NULL,
preco DECIMAL(10,2) NOT NULL,
estoque INTEGER DEFAULT 0,
descricao TEXT
);
INSERT INTO itens (nome, tipo, preco, estoque, descricao) VALUES
('Poção de Cura', 'Poção', 15.00, 50, 'Restaura 50 pontos de vida'),
('Poção de Mana', 'Poção', 20.00, 30, 'Restaura 40 pontos de mana'),
('Olho de Dragão', 'Ingrediente', 8.50, 15, 'Ingrediente raro para poções de força'),
('Pó de Fada', 'Ingrediente', 5.00, 40, 'Usado em encantamentos de levitação'),
('Elixir da Sabedoria', 'Elixir', 45.00, 10, 'Aumenta inteligência por 1 hora'),
('Cristal de Gelo', 'Ingrediente',12.00, 25, 'Necessário para poções de velocidade'),
('Poção de Invisibilidade','Poção', 35.00, 8, 'Torna invisível por 10 minutos');
✅ Execute SELECT * FROM itens; no Query Tool para confirmar que os dados estão lá.