Nếu bạn đã kết nối với cơ sở dữ liệu, once
sự kiện sẽ không kích hoạt lại. Cơ sở dữ liệu đã được kết nối cho toàn bộ quy trình NodeJs khi nó được kết nối toàn cầu (bên ngoài chức năng).
Lệnh gọi đến mongoose.connect('mongodb://localhost/test');
tạo kết nối và mở nó.
Vì vậy, thay vì mở nó trong mỗi lần gọi hàm (sẽ là một cách không hiệu quả để tương tác với MongoDB), hãy connect
ngay lập tức khi ứng dụng NodeJs được khởi động và hãy cân nhắc rằng sẽ có một khoảng thời gian mà kết nối có thể không khả dụng (vì nó không đồng bộ) hoặc không khởi động ứng dụng (listen
) cho đến khi kết nối hoàn tất (hoặc hết thời gian chờ). Với Mongoose, cho đến khi kết nối được thực hiện, tất cả các lệnh đều được lưu vào bộ đệm (nhưng đó có thể không phải là hành vi bạn muốn). Bạn có thể sử dụng open
nếu bạn muốn biết khi nào kết nối hoàn tất.
Kết nối được tìm thấy ở đây:mongoose.connection
nếu bạn sử dụng connect
chức năng tạo kết nối.
Sau khi kết nối được mở, bạn có thể sử dụng nó từ popSingleData
của mình chức năng mà không cần sử dụng once
sự kiện và gọi lại. Có một nhóm kết nối được duy trì tự động.
Để biết thêm về kết nối, hãy đọc tại đây .