Вы хотите создать надежное серверное приложение с помощью 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, вы можете с легкостью создавать масштабируемые и эффективные серверные приложения. Приятного кодирования!