Sử dụng Node-Postgres trong Node.js Express

Tram Ho

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn từng bước về cách sử dụng nút-postgres với Node.js Express. Chúng tôi sẽ áp dụng nó vào một dự án thực tế, làm cho nó dễ hiểu, linh hoạt và có thể mở rộng. Chúng tôi cũng sẽ triển khai một số cơ chế quan trọng như singleton, kho lưu trữ, truy vấn trên hai cơ sở dữ liệu để đọc và ghi cũng như cơ chế kết nối lại khi bị ngắt kết nối khỏi cơ sở dữ liệu.

Giới thiệu về Node-Postgres

Node-Postgres là một thư viện máy khách PostgreSQL phổ biến cho Node.js. Nó cho phép bạn tương tác với cơ sở dữ liệu PostgreSQL một cách dễ dàng và hiệu quả. Với API đơn giản của nó, bạn có thể thực hiện các truy vấn, quản lý giao dịch và sử dụng tổng hợp kết nối để có hiệu suất tốt hơn.

Cấu trúc nguồn

Dưới đây là tổng quan về cấu trúc nguồn cho dự án này:

Thiết lập dự án

Trước khi đi sâu vào mã, hãy đảm bảo bạn đã cài đặt phần sau:

  • Node.js (14.x trở lên)
  • PostgreSQL (9.6 trở lên)

Nếu bạn có docker, bạn cũng có thể chạy dự án này mà không cần những thứ này.

Đầu tiên, tạo một thư mục mới cho dự án của bạn và điều hướng đến nó:

Khởi tạo dự án Node.js mới và cài đặt các phụ thuộc cần thiết:

Tạo nhóm kết nối Singleton

Nhóm kết nối là bộ nhớ cache của các kết nối cơ sở dữ liệu được duy trì để cải thiện hiệu suất. Để tạo nhóm kết nối đơn lẻ, chúng tôi sẽ sử dụng gói pg và mẫu thiết kế Singleton.

Tạo một tệp mới có tên db.js và dán đoạn mã sau:

Bây giờ, bạn có thể sử dụng lớp Singleton để lấy một phiên bản nhóm kết nối trong các phần khác của ứng dụng của bạn.

Triển khai mẫu kho lưu trữ

Mẫu kho lưu trữ giúp trừu tượng hóa logic truy cập dữ liệu, làm cho nó dễ bảo trì và kiểm tra hơn. Tạo một thư mục mới có tên là repositories và tạo một tệp mới bên trong nó có tên userRepository.js :

Cấu hình môi trường

Tạo tệp .env trong thư mục gốc của dự án để lưu trữ các biến môi trường:

Đảm bảo thay thế your_read_db_connection_stringyour_write_db_connection_string bằng các chuỗi kết nối PostgreSQL thực tế của bạn.

Package.json và Điểm đầu vào

Bạn cũng có thể sửa đổi tệp package.json trong thư mục gốc của dự án với nội dung sau:

Nếu bạn đã sửa đổi tệp package.json , hãy chạy lại lệnh này:

Tạo một tệp index.js trong thư mục gốc của dự án:

Giờ đây, bạn đã có một ứng dụng Node.js Express hoàn chỉnh bằng cách sử dụng nút-postgres, với nhóm kết nối đơn lẻ, mẫu kho lưu trữ, truy vấn nhiều cơ sở dữ liệu cho các thao tác đọc và ghi cũng như cơ chế kết nối lại khi bị ngắt kết nối khỏi cơ sở dữ liệu.

Để chạy ứng dụng, hãy sử dụng lệnh sau nếu bạn có sẵn DB Postgres nếu không thì bước tiếp theo:

Cấu hình Docker và khởi tạo dữ liệu mẫu

Để khởi tạo dữ liệu mẫu cho bảng users , chúng ta có thể sử dụng tập lệnh SQL chạy khi bộ chứa PostgreSQL khởi động. Tạo một thư mục mới có tên initdb trong thư mục gốc của dự án của bạn và bên trong thư mục initdb , hãy tạo một tệp có tên init.sql với nội dung sau:

Tập lệnh này sẽ tạo bảng users nếu nó không tồn tại và chèn ba người dùng mẫu vào bảng.

Hãy tạo một tệp mới có tên Dockerfile và dán đoạn mã sau:

Bây giờ, hãy tạo một tệp mới có tên docker-compose.yml và dán đoạn mã sau:

Để chạy ứng dụng với Docker Compose, hãy sử dụng lệnh sau:

Khi vùng chứa khởi động, bảng users sẽ được tạo và điền dữ liệu mẫu. Và ứng dụng nút cũng được bắt đầu trong vùng chứa.

Phần kết luận

Trong bài viết này, chúng tôi đã đề cập đến cách sử dụng node-postgres với Node.js Express , triển khai nhóm kết nối đơn lẻ, mẫu kho lưu trữ, truy vấn nhiều cơ sở dữ liệu cho hoạt động đọc và ghi cũng như cơ chế kết nối lại. Bằng cách làm theo hướng dẫn này, bạn có thể xây dựng một ứng dụng linh hoạt, có thể mở rộng và có thể bảo trì bằng node-postgres .

Và cuối cùng

Như mọi khi, tôi hy vọng bạn thích bài viết này và học được điều gì đó mới. Xin cảm ơn và hẹn gặp lại các bạn trong những bài viết tiếp theo!

Nếu các bạn thích bài viết này thì hãy cho mình 1 like và subscribe để ủng hộ mình nhé. Cảm ơn.

Giới thiệu

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo