Pular para o conteúdo
~/.primo-academy.sh
☰ Aulas · Backend · 0/15
Recomendado: essencial

ORM: Falando com o Banco

1 min de leitura

fonte

Escrever SQL direto no código funciona, mas vira confuso quando o sistema cresce. Um ORM (Object-Relational Mapper) traduz "tabelas em SQL" pra "objetos em JavaScript" - você pensa em métodos, não em strings SQL.

O Prisma é o ORM mais popular do ecossistema JavaScript hoje.

Setup inicial:

npm install prisma @prisma/client
npx prisma init --datasource-provider postgresql

Isso cria um schema.prisma, onde você descreve suas tabelas:

model Usuario {
  id        Int      @id @default(autoincrement())
  nome      String
  email     String   @unique
  criadoEm  DateTime @default(now())
  posts     Post[]
}

model Post {
  id        Int      @id @default(autoincrement())
  titulo    String
  autorId   Int
  autor     Usuario  @relation(fields: [autorId], references: [id])
}

Usando no Express:

import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();

app.get("/usuarios", async (req, res) => {
  const usuarios = await prisma.usuario.findMany();
  res.json(usuarios);
});

app.post("/usuarios", async (req, res) => {
  const novo = await prisma.usuario.create({ data: req.body });
  res.status(201).json(novo);
});

Três benefícios do Prisma:

  • Type safety - o autocomplete funciona, erros aparecem no editor.
  • Migrações - npx prisma migrate dev versiona mudanças no schema.
  • Leitura fluente - prisma.usuario.findMany({ where: { ativo: true } }) em vez de SQL cru.

Dica: nunca exponha o objeto PrismaClient inteiro no endpoint - use select ou omit para escolher quais campos devolver (especialmente senhas). Veremos isso no próximo nó.

No próximo nó, vamos proteger rotas com autenticação usando JWT.

// recursos

// avaliação da trilha

—
ainda sem avaliações