×

Cài đặt thư viện Prisma trong JavaScript

Prisma là một ORM (Object-Relational Mapping) hiện đại và mạnh mẽ giúp các nhà phát triển làm việc với cơ sở dữ liệu một cách dễ dàng và hiệu quả hơn. Với Prisma, bạn có thể viết truy vấn cơ sở dữ liệu mà không cần phải sử dụng các câu lệnh SQL phức tạp. Thay vào đó, bạn có thể sử dụng các hàm JavaScript để tương tác với dữ liệu. Bài viết này sẽ hướng dẫn cài đặt thư viện Prisma trong một dự án JavaScript.

1. Giới Thiệu Về Prisma

Prisma Là Gì?

Prisma là một công cụ ORM giúp bạn làm việc với cơ sở dữ liệu một cách dễ dàng hơn. Nó hỗ trợ nhiều hệ quản trị cơ sở dữ liệu phổ biến như MySQL, PostgreSQL, SQLite, và SQL Server.

Tại Sao Nên Sử Dụng Prisma?

  • Dễ Dùng: Cú pháp thân thiện với người dùng và dễ hiểu.
  • Hiệu Suất Cao: Tối ưu hóa hiệu suất truy vấn.
  • Bảo Mật: Giảm thiểu rủi ro SQL Injection thông qua các truy vấn tự động hóa.
  • Tích Hợp Tốt: Dễ dàng tích hợp vào các framework phổ biến như Express.js, Koa, hay Next.js.

2. Chuẩn Bị Môi Trường

Yêu Cầu Hệ Thống

Để cài đặt và sử dụng Prisma, bạn cần phải cài đặt Node.js phiên bản 10 hoặc mới hơn. Kiểm tra phiên bản Node.js và npm bằng các lệnh sau:

node -v
npm -v

Tạo Dự Án JavaScript

Nếu bạn chưa có dự án JavaScript, hãy tạo một dự án mới bằng cách sử dụng npm:

mkdir my-prisma-project
cd my-prisma-project
npm init -y

3. Cài Đặt Prisma

Cài Đặt Các Package Cần Thiết

Cài đặt các package Prisma vào dự án của bạn bằng các lệnh sau:

npm install @prisma/client
npm install -D prisma

Tạo Tập Tin Cấu Hình Prisma

Sử dụng Prisma CLI để khởi tạo Prisma trong dự án của bạn:

npx prisma init

Lệnh này sẽ tạo ra một thư mục mới có tên là prisma và hai tập tin: schema.prisma.env.

4. Cấu Hình Prisma

Cấu Hình Credential Kết Nối Cơ Sở Dữ Liệu

Mở tập tin .env và cấu hình các thông tin kết nối cơ sở dữ liệu. Ví dụ, nếu bạn sử dụng SQLite:

DATABASE_URL="file:./dev.db"

Nếu bạn sử dụng PostgreSQL, thông tin sẽ như sau:

DATABASE_URL="postgresql://username:password@hostname:port/database"

Định Nghĩa Schema

Mở tập tin schema.prisma và định nghĩa các mô hình dữ liệu của bạn. Ví dụ:

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  name  String?
}

5. Thao Tác Với Cơ Sở Dữ Liệu

Thực Hiện Migration

Sau khi định nghĩa schema, bạn cần phải thực hiện migration để áp dụng các thay đổi lên cơ sở dữ liệu:

npx prisma migrate dev --name init

Lệnh này sẽ tạo và áp dụng các migration cần thiết.

Tạo Prisma Client

Chạy lệnh tạo Prisma Client:

npx prisma generate

Lệnh này sẽ sinh ra một Prisma Client mà bạn có thể sử dụng để thực hiện các thao tác CRUD trên cơ sở dữ liệu.

6. Sử Dụng Prisma Client Trong Dự Án

Kết Nối và Thao Tác Với Cơ Sở Dữ Liệu

Bây giờ, bạn có thể sử dụng Prisma Client trong mã JavaScript của mình để thực hiện các thao tác với cơ sở dữ liệu.

Tạo Một User

const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function main() {
  const newUser = await prisma.user.create({
    data: {
      email: 'alice@prisma.io',
      name: 'Alice',
    },
  });
  console.log(newUser);
}

main()
  .catch((e) => {
    throw e;
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Truy Vấn User

const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function main() {
  const allUsers = await prisma.user.findMany();
  console.log(allUsers);
}

main()
  .catch((e) => {
    throw e;
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Cập Nhật User

const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function main() {
  const updatedUser = await prisma.user.update({
    where: { email: 'alice@prisma.io' },
    data: { name: 'Alice Johnson' },
  });
  console.log(updatedUser);
}

main()
  .catch((e) => {
    throw e;
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

Xóa User

const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();

async function main() {
  const deletedUser = await prisma.user.delete({
    where: { email: 'alice@prisma.io' },
  });
  console.log(deletedUser);
}

main()
  .catch((e) => {
    throw e;
  })
  .finally(async () => {
    await prisma.$disconnect();
  });

7. Kết Luận

Prisma là một công cụ mạnh mẽ và tiện lợi giúp tương tác với cơ sở dữ liệu trở nên dễ dàng hơn. Bằng cách sử dụng Prisma, bạn có thể tập trung vào việc phát triển ứng dụng mà không phải lo lắng quá nhiều về các thao tác truy vấn cơ sở dữ liệu phức tạp. Hy vọng rằng hướng dẫn này giúp bạn có một cái nhìn tổng quan về cách cài đặt và sử dụng Prisma trong dự án JavaScript của mình.

Comments