Menu Docs
Página inicial do Docs
/ / /
Controlador Node.js

Tutorial: Integração com Prisma

Prisma é um Object Relational Mapper (ORM) open source para Node.js Ele é compatível com o JavaScript e o TypeScript, mas é usado principalmente com o TypeScript para ajudá-lo a escrever código legível e seguro para o tipo.

Os esquemas ajudam os desenvolvedores a evitar problemas de inconsistência de dados ao longo do tempo definindo a estrutura dos documentos da sua coleção. Enquanto você pode definir um esquema no nível do banco de dados dentro do MongoDB, o Prisma permite definir um esquema no nível do aplicação . Como o cliente Prisma está ciente do esquema, os desenvolvedores que usam o Prisma Client têm acesso a queries de preenchimento automático.

Geralmente, os dados acessados juntos devem ser armazenados juntos em uma coleção do MongoDB . O Prisma suporta o uso de documentos incorporados para manter os dados juntos. Em casos de uso em que é necessário armazenar dados relacionados em coleções separadas do MongoDB , você deve incluir o campo _id de um documento em outro documento. O Prisma simplifica esse processo e ajuda você a organizar esses dados relacionados, ao mesmo tempo em que mantém a integridade referencial dos dados.

Para saber mais sobre modelagem de dados eficiente no MongoDB, consulte Reduzir operações de $lookup no manual do MongoDB Server .

Este tutorial mostra como executar as seguintes ações:

  • Baixe um exemplo de aplicação Prisma

  • Configure seu esquema Prisma

  • Criar e preencher um banco de dados MongoDB com dados de amostra

  • Torne o aplicação de exemplo compatível com MongoDB

  • Execute o aplicativo

1

Antes de iniciar este tutorial, verifique se você tem os seguintes componentes preparados:

  • Uma conta do MongoDB Atlas com um cluster configurado. Para visualizar instruções, consulte o guia Iniciar com Atlas .

  • Node.js v16.20.1 ou mais tarde.

2

Clone ou baixe o aplicação de exemplo no repositório de exemplos do Prisma.

Este exemplo é uma plataforma simples de gerenciamento de conteúdo de blog que usa um banco de dados SQLite. As etapas a seguir modificam o aplicação para usar MongoDB em vez de SQLite.

3

Navegue até o arquivo prisma/schema.prisma no diretório do aplicação de exemplo . No objeto datasource db deste arquivo, configure o campo provider para "mongodb" e o campo url para seu URI de conexão do Atlas .

No modelo User no mesmo arquivo, altere o tipo de campo id de Int para String e defina o valor padrão como auto(). A propriedade id deve mapear para o campo _id do MongoDB . Você também deve instruir Prisma a definir o tipo de dados dessa propriedade como ObjectId.

No modelo Post, execute as mesmas alterações no campo id que você fez no modelo User. Você também deve alterar o tipo de campo authorId de Int para String e configurar o tipo de dados para ObjectId.

Seu arquivo schema.prisma deve ser semelhante ao seguinte:

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "mongodb"
url = "<your connection URI>"
}
model Post {
id String @id @default(auto()) @map("_id") @db.ObjectId
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
title String
content String?
published Boolean @default(false)
viewCount Int @default(0)
author User @relation(fields: [authorId], references: [id])
authorId String @db.ObjectId
}
model User {
id String @id @default(auto()) @map("_id") @db.ObjectId
email String @unique
name String?
posts Post[]
}

Esse esquema define collections User e Post separadas em seu banco de dados MongoDB , onde cada Post contém uma referência a um User.

Depois de fazer essas alterações, navegue até o diretório do projeto em seu terminal e execute os seguintes comandos para instalar as dependências necessárias e gerar o esquema:

npm install
npx prisma generate

Observação

Se você fizer mais alterações no esquema, deverá executar novamente o comando npx prisma generate para que as alterações entrem em vigor.

4

Para preencher o banco de dados com dados de amostra, execute o arquivo prisma/seed.ts no projeto de exemplo executando o seguinte comando:

npx prisma db seed

Isso cria as coleçãos User e Post, conforme definido pelo arquivo schema.prisma, e as preenche com dados de amostra.

5

Navegue até o diretório src do projeto de exemplo . Nos arquivos pages/api/post/[id].ts e pages/api/publish/[id].ts, substitua todas as instâncias de Number(postId) por postId. Isso é necessário porque os campos id no esquema agora são do tipo String em vez de Int.

6

Para iniciar o aplicação, execute o seguinte comando no diretório do projeto :

npm run dev

Navegue até http://localhost:3000 em seu navegador da web para visualizar e executar o aplicação. Você pode usar o aplicação para criar, redigir, publicar e excluir blog posts. Você pode fazer referência às definições de rota da API na pasta pages/api do projeto de exemplo .

Para saber mais sobre o Prisma, consulte a documentação do Prisma.

Para visualizar e baixar uma versão completa do aplicação neste tutorial, consulte o repositório GitHubprisma-mongodb-nextjs-example.

Voltar

Comece com o Mongoose

Nesta página