Когда вы используете Prisma для сохранения данных с отношениями в Node.js, вам необходимо учесть несколько важных моментов.
1. Определите связи в вашей схеме данных: При использовании Prisma вы должны определить связи между вашими моделями в файле schema.prisma
. Например, если у вас есть модели User
и Post
, и у каждого пользователя может быть несколько постов, вы можете определить связь User
с Post
следующим образом:
model User { id Int @id @default(autoincrement()) name String? posts Post[] } model Post { id Int @id @default(autoincrement()) title String content String userId Int user User @relation(fields: [userId], references: [id]) }
2. Создайте новые записи и устанавливайте связи между ними: Когда вы хотите сохранить данные с отношениями, вам нужно сначала создать новые записи и затем установить связи между ними. Например, чтобы создать нового пользователя и связанный с ним пост, вы можете использовать следующий код:
const newUser = await prisma.user.create({ data: { name: 'John' } }); const newPost = await prisma.post.create({ data: { title: 'Hello World', content: 'This is my first post', userId: newUser.id } });
В этом примере мы создаем нового пользователя, а затем создаем новый пост и устанавливаем его связь с созданным пользователем, указывая userId
из созданного пользователя.
3. Получайте данные с отношениями: Когда вы хотите получить данные с отношениями, вы можете использовать метод include
для указания связанных моделей, которые вы хотите предварительно загрузить. Например, чтобы получить всех пользователей и связанные с ними посты, вы можете использовать следующий код:
const usersWithPosts = await prisma.user.findMany({ include: { posts: true } });
В результате вы получите массив с объектами, содержащими пользователей и их связанные посты.
Если вы все еще сталкиваетесь с ошибками при сохранении данных с отношениями через Prisma, убедитесь, что вы правильно определили связи в вашей схеме данных и правильно устанавливаете связи при создании новых записей.