Thực thi một backend sử dụng Express, Mongoose ODM, và Jest (phần 6)

Tạo schemas CSDL sử dụng Mongoose

Trước khi chúng ta có thể bắt đầu định nghĩa schemas CSDL, chúng ta trước tiên cần thiết lập bản thân Mongoose.
Mongoose là một thư viện cái đơn giản hóa mô hình hóa MongoDB object bằng cách giảm boilerplate code cần để tạo
giao diện với MongoDB. Nó cũng bao gồm business logic phổ biến như thiết lập createdAt và updatedAt timestamps
tự động và hiệu lực hóa và type casting để giữ trạng thái CSDL ổn định.
Đi theo các bước này để thiết lập thư viện mongoose:
1. Trước tiên, cài đặt thư viện mongoose:

$ npm install mongoose@8.0.2

2. Tạo một src/db/init.js file mới và nhập khẩu mongoose ở đó:

import mongoose from ‘mongoose’

3. Định nghĩa và xuất khẩu một hàm cái sẽ khởi tạo kết nối CSDL:

export function initDatabase() {

4. Trước tiên, chúng ta định nghĩa DATABASE_URL để trỏ tới thực thể khởi tạo MongoDB địa phương của chúng ta chạy
thông qua Docker và chỉ ra blog như tên CSDL:

const DATABASE_URL = ‘mongodb://localhost:27017/blog’

String kết nối là tương tự cái chúng ta đã sử dụng trong các học phần trước khi truy cập trực tiếp CSDL qua Node.js.
5. Sau đó, thêm một listener vào open event trên kết nối Mongoose để rằng chúng ta có thể thể hiện một log message
một khi chúng ta đã kết nối với CSDL:

mongoose.connection.on(‘open’, () => {

console.info(‘successfully connected to database:’,

DATABASE_URL)

})

6. Bây giờ, sử dụng hàm mongoose.connect() để kết nối tới CSDL MongoDB của chúng ta và trả về connection object:

const connection = mongoose.connect(DATABASE_URL)
return connection

}

7. Tạo một src/example.js file mới và nhập khẩu và chạy hàm initDatabase ở đó:

import { initDatabase } from ‘./db/init.js’
initDatabase()

8. Chạy src/example.js file sử dụng Node.js để xem Mongoose thành công kết nối tới CSDL của chúng ta:
our database:

$ node src/example.js

Luôn là, bạn có thể dừng server bằng cách ấn Ctrl+C trong Terminal.
Chúng ta có thể thấy log message của chúng ta đang được in ra tới Terminal, nên chúng ta biết rằng Mongoose là
có thể thành công kết nối tới CSDL của chúng ta! Nếu có một lỗi, ví dụ, vì Docker (hay cái chứa) không đang chạy,
nó sẽ treo cho một lúc và sau đó ném ra một lỗi về kết nối đang bị từ chối (ECONNREFUSED). Trong trường hợp đó,
đảm bảo cái chứa MongoDB Docker đang chạy đúng đắn và có thể được kết nối tới.

Chia sẻ