Đăng lại từ https://jira.mongodb.org/browse/NODE-1868:
Các thông báo không dùng nữa có thể là do client.connect
đang được gọi nhiều lần. Nhìn chung, gọi client.connect
nhiều lần hiện tại (kể từ trình điều khiển v3.1.13
) có hành vi không xác định, và nó không được khuyến khích. Điều quan trọng cần lưu ý là khi lời hứa được trả về từ connect
giải quyết, ứng dụng khách vẫn được kết nối cho đến khi bạn gọi client.close
:
const client = new MongoClient(...);
client.connect().then(() => {
// client is now connected.
return client.db('foo').collection('bar').insertOne({
}).then(() => {
// client is still connected.
return client.close();
}).then(() => {
// client is no longer connected. attempting to use it will result in undefined behavior.
});
Máy khách theo mặc định duy trì nhiều kết nối đến mỗi máy chủ mà nó được kết nối và có thể được sử dụng cho nhiều hoạt động đồng thời *. Bạn sẽ chạy tốt client.connect
một lần và sau đó chạy các hoạt động của bạn trên đối tượng khách hàng
* Lưu ý rằng ứng dụng KHÔNG an toàn theo luồng hoặc an toàn phân nhánh, vì vậy nó không thể được chia sẻ giữa các nhánh và nó không tương thích với cluster
của nút hoặc worker_threads
mô-đun.