Создание базы данных Prisma MySQL с помощью NestJS: подробное руководство

Вы хотите создать надежное серверное приложение с помощью NestJS и базы данных MySQL? Не смотрите дальше! В этой статье мы погрузимся в мир Prisma, мощного инструмента ORM (объектно-реляционного сопоставления), и рассмотрим различные методы его простой интеграции с NestJS. Итак, начнем!

Знакомство с Prisma и NestJS

Prisma — это современный набор инструментов для работы с базами данных, упрощающий доступ к базе данных и управление ею. Он предоставляет типобезопасный и автоматически создаваемый построитель запросов, упрощающий работу с базами данных. NestJS, с другой стороны, — это прогрессивная платформа Node.js для создания эффективных и масштабируемых серверных приложений.

Настройка проекта

Сначала давайте настроим новый проект NestJS и установим необходимые зависимости:

$ npx nest new prisma-nest-app
$ cd prisma-nest-app
$ npm install @prisma/cli prisma mysql

Настройка Призмы

Далее нам нужно настроить Prisma для подключения к нашей базе данных MySQL. Создайте новый файл с именем prisma/schema.prismaи добавьте следующий код:

datasource db {
  provider = "mysql"
  url      = "mysql://your_username:your_password@localhost:3306/your_database"
}

Замените your_username, your_passwordи your_databaseсвоими фактическими учетными данными MySQL.

Создание клиента Prisma

Чтобы создать клиент Prisma, выполните следующую команду:

$ npx prisma generate

Эта команда создаст клиент Prisma на основе вашего определения схемы.

Использование Prisma в NestJS

Теперь, когда Prisma настроена, давайте интегрируем ее в наше приложение NestJS. Создайте новый файл службы src/prisma/prisma.service.tsи добавьте следующий код:

import { Injectable } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@Injectable()
export class PrismaService {
  public prisma: PrismaClient;
  constructor() {
    this.prisma = new PrismaClient();
  }
}

В этом примере мы создаем класс PrismaService, который инициализирует клиент Prisma.

Доступ к клиенту Prisma

Чтобы получить доступ к клиенту Prisma в ваших модулях NestJS, импортируйте PrismaServiceи используйте его следующим образом:

import { Controller, Get } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';
@Controller('users')
export class UsersController {
  constructor(private readonly prisma: PrismaService) {}
  @Get()
  async getAllUsers() {
    const users = await this.prisma.user.findMany();
    return users;
  }
}

В этом примере мы создаем UsersController, который извлекает всех пользователей из базы данных с помощью клиента Prisma.

Заключение

Поздравляем! Теперь у вас есть четкое представление о том, как настроить и использовать Prisma с NestJS и MySQL. Мы рассмотрели базовую настройку, создание клиента Prisma и доступ к нему в ваших модулях NestJS. Не забудьте изучить обширную документацию Prisma, чтобы узнать о более продвинутых функциях и функциях.

Используя возможности Prisma и NestJS, вы можете с легкостью создавать масштабируемые и эффективные серверные приложения. Приятного кодирования!