Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Next.js: nextjs, database, server, security

Можно ли в Next.js работать с базой данных или другими API на стороне сервера?

Вопрос проверяет понимание того, как Next.js позволяет взаимодействовать с backend-ресурсами (базами данных, внешними API) непосредственно из серверного кода, не подвергая клиента рискам безопасности.

Короткий ответ

Да, абсолютно. В Next.js можно и нужно напрямую обращаться к базам данных или внутренним API из Server Components, Server Actions или API Routes. Ключи доступа и логика остаются на сервере, никогда не попадая в клиентский код, что обеспечивает безопасность

Длинный ответ

Next.js — это полноценный full-stack фреймворк, который позволяет писать backend-логику рядом с frontend.

Способы работы с данными на сервере:

  1. Непосредственно в Server Components:

    • Можно импортировать и использовать ORM (как Prisma) или драйверы БД прямо в компоненте.

    • Это безопасно, так как код никогда не попадает в браузер.

    // app/users/page.js
    import prisma from '@/lib/prisma'; // Импортируем клиент БД
    
    export default async function UsersPage() {
      const users = await prisma.user.findMany(); // Прямой запрос к БД
    
      return (
        <ul>
          {users.map((user) => (
            <li key={user.id}>{user.name}</li>
          ))}
        </ul>
      );
    }
  2. Через API Routes:

    • Создайте endpoint в папке app/api/route.js.

    • К нему можно обращаться и из клиентских компонентов через fetch.

  3. Через Server Actions:

    • Позволяют вызывать асинхронные функции на сервере прямо из клиентских компонентов (например, при отправке формы).

Важно для безопасности:

  • Никогда не подключайтесь к БД из Client Components. Делайте это только в Server Components, API Routes или Server Actions.

  • Все секретные ключи (API-ключи, connection strings) храните в переменных окружения, к которым у клиента нет доступа.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Next.js

    Next.js

Ключевые слова

#nextjs

#database

#server

#security

Подпишись на React Developer в телеграм