DEV Community

Marcos Taylor
Marcos Taylor

Posted on

Prisma-ORM e NodeJS

Iniciando com Prisma ORM

Introdução
Este é um documento para iniciantes conseguirem fazer a utilização de do ORM Prisma no dia a dia. Este documento terá um código simples que também estará disponível no github.

Início
Para iniciar com o prisma ORM é bem simple primeiro vamos colocar um yarn add prisma ou npm install prisma && yarn add @prisma/client ou npm install @prisma/client e depois só utilizar a linha de comando npx prisma init . esse comando irá criar alguns arquivos no seu projeto, sendo eles uma pasta chamada prisma (aqui irá ficar as migrations e o arquivos chamando schema.prisma)
No arquivo de schema que foi criado vamos iniciar os nossos schemas das tabelas do banco. Ex.

model Authors {
  id    String  @id @default(uuid())
  name  String  @db.Text
  email String  @db.Text
  books Books[]

  created_at DateTime @default(now())
  updated_at DateTime @default(now())

  @@map("authors")
}

model Books {
  id          String  @id @default(uuid())
  title       String  @db.Text
  description String? @db.Text

  created_at DateTime @default(now())
  updated_at DateTime @default(now())

  Authors   Authors @relation(fields: [author_id], references: [id])
  author_id String
  @@map("books")
}
Enter fullscreen mode Exit fullscreen mode

O Relacionamento acima é feito de One to Many (um para muitos) ou seja 1 autor pode ter vários livros. Abaixo estarei mostrando como fazer a inserção de um autor criando 1 livro.
A parte de que coloquei no model de Author o books do Tipo Books[] significa que o author terá varios livro e abaixo coloquei @@map(“authors”) que será como nossa tabela sera chamada no banco de dados

Inserindo dados dados no banco
é muito fácil inserir só instanciar o PrismaCliente usando o new PrismaClient() usar o create como no exemplo a baixo

    async create(data: IData) {
        return await prisma.authors.create({ data })
    }
Enter fullscreen mode Exit fullscreen mode

outro comando é o de find:

async findById(id: string) {
        return await prisma.authors.findFirst({
            where: {
                id
            }
        })
    }
Enter fullscreen mode Exit fullscreen mode

aqui outros comando dos prisma na documentação click aqui pra ver o crud
inserindo uma example de projeto com node e prisma: Prisma e Nodejs

Discussion (0)