DevGang
Авторизоваться

Создание базы данных фильмов с помощью Prisma, Express и MongoDB: руководство для начинающих

Добро пожаловать в мир веб-разработки, где базы данных являются основой динамических приложений. Если вы только начинаете свой путь и ищете мощное, но удобное для новичков решение, Prisma может стать вашим путем к упрощенному взаимодействию с базами данных. В этом руководстве мы рассмотрим процесс создания базы данных фильмов с использованием Prisma, Express и MongoDB, предлагая практический подход для новичков.

Призма: краткий обзор

Prisma — это набор инструментов для работы с базами данных с открытым исходным кодом, который действует как мост между кодом вашего приложения и базой данных. Он поддерживает различные базы данных, такие как MySQL, PostgreSQL, SQLite, MongoDB и другие. Ключевой особенностью Prisma является ее типобезопасный и автоматически генерируемый построитель запросов, позволяющий разработчикам взаимодействовать с базами данных, используя предпочитаемый ими язык программирования.

Настройка вашего проекта

Давайте углубимся в практические аспекты. Откройте терминал и выполните следующие действия:

# Create a project directory
mkdir movie-database-prisma-express-mongodb

# Navigate into the project directory
cd movie-database-prisma-express-mongodb

# Initialize a JavaScript project
npm init -y

# Install necessary dependencies
npm install express @prisma/client dotenv

Эти команды устанавливают базовую структуру проекта, Express для создания веб-сервера, Prisma для взаимодействия с базой данных и dotenv для управления переменными среды.

Настройка Prisma для MongoDB

Теперь давайте настроим Prisma для работы с MongoDB. Выполните следующие команды в своем терминале:

# Initialize Prisma
npx prisma init

При этом будет создан каталог prisma с необходимыми файлами для установки Prisma. Откройте prisma/schema.prisma и настройте блок источника данных для подключения к вашей MongoDB:

// prisma/schema.prisma
datasource db {
  provider = "mongodb"
  url      = env("DATABASE_URL")
}

Не забудьте создать .env файл в корне вашего проекта и добавить URL-адрес подключения MongoDB:

DATABASE_URL="your-mongodb-connection-url"

Замените "your-mongodb-connection-url" фактической строкой подключения MongoDB.

Создание сервера Express

Теперь давайте рассмотрим настройку сервера Express server.js:

server.js
import "dotenv/config";
import express from "express";
import routes from "./routes/index.js";

const app = express();
const PORT = process.env.PORT || 3000;

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(routes);

app.get("/", (req, res) => {
  res.send("Working");
});

app.listen(PORT, () => {
  console.log(`Server is running on PORT ${PORT}`);
});

Этот сценарий настраивает базовый сервер Express, обрабатывающий данные в формате JSON и URL. Он также определяет простой / маршрут, который возвращает «Рабочее» сообщение.

Определение маршрутов и контроллеров

Маршруты определяются в каталоге routes и делятся на movieRoutes.js и castRoutes.js. Эти маршруты затем импортируются в index.js для создания модульной структуры.

Контроллеры в controllers/MovieController.js и controllers/CastController.js управляют логикой хранения, извлечения, обновления и удаления фильмов и трансляций.

Модель данных Prisma

Сердце Prisma лежит в ее модели данных, определенной в prisma/schema.prisma. Это структурированное представление схемы вашей базы данных используется для автоматического создания клиента Prisma.

prisma/schema.prisma
model Movie {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  name String @unique
  created_at DateTime @default(now())
  Cast Cast[]
}

model Cast {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  movieId String @db.ObjectId
  movie Movie @relation(fields: [movieId], references: [id])
  name String
  description String?
  created_at DateTime @default(now())
}

Этот фрагмент определяет две модели: Movie и Cast. Модель Movie представляет фильмы, а Cast модель представляет актерский состав, связанный с каждым фильмом. Отношения между моделями четко определены.

Конфигурация клиента Prisma

В DB/db.config.js клиенте Prisma настраивается и экспортируется:

DB/db.config.js
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient({
  log: ["query"],
});

export default prisma;

Использование Prisma в контроллерах

Контроллеры используют клиент Prisma для операций с базой данных. Например, CastController.js извлекает все Casts и сохраняет новые:

controllers/CastController.js
import prisma from "../DB/db.config.js";

export const getAllCast = async (req, res) => {
  // Retrieve all casts with associated movie details
  const casts = await prisma.cast.findMany({
    include: {
      movie: {
        select: {
          name: true,
          id: true,
        },
      },
    },
  });

  return res.json({ status: 200, casts });
};

export const store = async (req, res) => {
  // Store a new cast
  const { movie_id, name } = req.body;
  const cast = await prisma.cast.create({
    data: {
      movieId: movie_id,
      name: name,
    },
  });

  return res.json({ status: 200, cast, message: "Cast Added successfully!" });
};

Заключение

Поздравляем! Вы успешно настроили базу данных фильмов с помощью Prisma, Express и MongoDB. Это руководство представляет собой основу для создания более сложных приложений и изучения возможностей Prisma в процессе веб-разработки. Продолжая исследование, не забудьте скрыть в .env файле конфиденциальную информацию, например учетные данные MongoDB. Приятного кодирования!

Источник:

#MongoDB #NodeJS #Express
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу