Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

371
Vistas
Relación de muchos a muchos prisma

Tengo un servidor express con Typescript Mysql que también usa Prisma Js para ORM. Estos son mis esquemas:

 model Post { id Int @id @default(autoincrement()) title String @db.VarChar(35) description String @db.VarChar(250) category CategoriesOnPosts[] author User @relation(fields: [userId], references: [id]) userId String createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Category { id Int @id @default(autoincrement()) name String @unique @db.VarChar(18) about String @db.VarChar(60) posts CategoriesOnPosts[] } model CategoriesOnPosts { post Post @relation(fields: [postId], references: [id]) postId Int category Category @relation(fields: [categoryId], references: [id]) categoryId Int @@id([postId, categoryId]) }

primero creo una nueva categoría, luego crearé una nueva publicación, pero no puedo resolver este problema, ¿alguien puede ayudarme? también aquí está mi petición:

 export const createCategory = async (req: Request, res: Response) => { try { const { name, about } = req.body; if (!name || !about) return res.status(400).json({ error: 'Please fill all inputs!' }); const existCategory = await prisma.category.findUnique({ where: { name } }); if (existCategory) return res.status(400).json({ error: 'This category already exists!' }); const category = await prisma.category.create({ data: { name, about, }, }); res.status(201).json(category); } catch (error) { res.status(500).json({ error: error.message }); } };

pero cuando trato de crear una nueva publicación, no puedo ver ninguna categoría en el modelo CategoriesOnPosts

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

He eliminado Usuario de su esquema para simplificar el ejemplo

 datasource mysql { provider = "mysql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" } model Post { id Int @id @default(autoincrement()) title String description String category CategoriesOnPosts[] createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } model Category { id Int @id @default(autoincrement()) name String @unique about String posts CategoriesOnPosts[] } model CategoriesOnPosts { post Post @relation(fields: [postId], references: [id]) postId Int category Category @relation(fields: [categoryId], references: [id]) categoryId Int @@id([postId, categoryId]) }

Después de haber ejecutado la migración, he ejecutado el siguiente código:

 const { PrismaClient } = require('@prisma/client') const prisma = new PrismaClient() const loadData = async () => { const category = await prisma.category.create({ data: { name: 'Category 1', about: 'Description 1', }, }); console.log(category); const post = await prisma.post.create({ data: { title: 'Post 1', description: 'Description 1', category: { create: { category: { connect: { id: category.id } } } } }, }); console.log(post); }; loadData()

Y todo funciona correctamente, aquí les dejo una imagen con el resultado

resultado

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda