Расширение вашего приложения Next.js с помощью Global Prisma

Привет, коллеги-разработчики! Сегодня мы собираемся погрузиться в чудесный мир Next.js и узнать, как мы можем использовать преимущества мощного ORM Prisma для улучшения наших приложений. Итак, возьмите свой любимый напиток и начнем!

Если вы не знакомы с Next.js, это популярная среда React, которая позволяет нам с легкостью создавать приложения, отображаемые на стороне сервера. Prisma, с другой стороны, — отличный набор инструментов для работы с базами данных, который упрощает интеграцию с базами данных и предоставляет типобезопасный и интуитивно понятный API для работы с базами данных.

Теперь давайте рассмотрим некоторые методы глобальной интеграции Prisma в наше приложение Next.js:

  1. Настройка Prisma
    Чтобы начать, нам нужно установить Prisma и настроить подключение к базе данных. Выполните следующие команды в каталоге проекта Next.js:

    npm install prisma
    npx prisma init

    Это инициализирует Prisma и создаст необходимые файлы для установления соединения с вашей базой данных.

  2. Настройка клиента Prisma
    Далее нам нужно настроить клиент Prisma для глобального доступа в нашем приложении Next.js. Создайте новый файл с именем prisma.ts(или любым другим именем, которое вы предпочитаете) в корне вашего проекта и добавьте следующий код:

    import { PrismaClient } from '@prisma/client';
    declare global {
    namespace NodeJS {
    interface Global {
      prisma: PrismaClient;
    }
    }
    }
    const prisma = global.prisma || new PrismaClient();
    if (process.env.NODE_ENV !== 'production') global.prisma = prisma;
    export default prisma;

    Этот код гарантирует, что у нас есть единственный экземпляр клиента Prisma, доступный во всем нашем приложении.

  3. Инициализация клиента Prisma
    Чтобы инициализировать клиент Prisma, мы создадим собственный файл Next.js app.js. В этот файл добавьте следующий код:

    import prisma from '../prisma';
    export function getPrisma() {
    return prisma;
    }
    function MyApp({ Component, pageProps }) {
    return <Component {...pageProps} />;
    }
    MyApp.getInitialProps = async (appContext) => {
    const appProps = await App.getInitialProps(appContext);
    const prisma = getPrisma();
    return { ...appProps, prisma };
    };
    export default MyApp;

    Здесь мы определяем пользовательскую функцию getPrisma, которая возвращает клиент Prisma. Затем мы передаем этот клиент в качестве реквизита всем страницам нашего приложения.

  4. Доступ к Prisma на страницах
    После того, как Prisma настроена глобально, мы теперь можем получить к ней доступ на наших страницах Next.js. Просто импортируйте функцию getPrismaи используйте ее в компонентах своей страницы:

    import { getPrisma } from '../app';
    function HomePage({ prisma }) {
    // Use prisma instance to query your database
    const users = await prisma.user.findMany();
    return (
    <div>
      <h1>Hello, Next.js and Prisma!</h1>
      {/* Display your data */}
    </div>
    );
    }
    export default HomePage;

И все! Глобально интегрировав Prisma в ваше приложение Next.js, вы теперь можете легко запрашивать базу данных и получать данные со всех ваших страниц.

В этой статье мы рассмотрели способы расширения возможностей вашего приложения Next.js за счет глобальной интеграции Prisma. Мы узнали, как настроить Prisma, настроить клиент Prisma, инициализировать его в Next.js и получить к нему доступ на наших страницах. Теперь у вас есть возможность беспрепятственно работать с базами данных и повысить производительность ваших приложений Next.js.

Надеюсь, эта статья оказалась для вас полезной. Приятного кодирования!