Như đã lưu ý, việc 3.1.0-beta4
phát hành trình điều khiển đã "được thả vào tự nhiên" sớm một chút bởi vẻ ngoài của mọi thứ. Bản phát hành là một phần của công việc đang tiến hành để hỗ trợ các tính năng mới hơn trong bản phát hành sắp tới MongoDB 4.0 và thực hiện một số thay đổi API khác.
Một thay đổi như vậy kích hoạt cảnh báo hiện tại là useNewUrlParser
tùy chọn, do một số thay đổi xung quanh cách truyền URI kết nối thực sự hoạt động. Thêm về điều đó sau.
Cho đến khi mọi thứ "ổn định", có lẽ nên "ghim" ít nhất là phiên bản nhỏ để 3.0.x
phát hành:
"dependencies": {
"mongodb": "~3.0.8"
}
Điều đó sẽ dừng 3.1.x
nhánh được cài đặt trên các cài đặt "mới" cho các mô-đun nút. Nếu bạn đã cài đặt bản phát hành "mới nhất" là phiên bản "beta", thì bạn nên dọn sạch các gói của mình (và package-lock.json
) và đảm bảo rằng bạn chuyển 3.0.x
bản phát hành đó xuống bản phát hành loạt.
Đối với việc thực sự sử dụng các tùy chọn URI kết nối "mới", hạn chế chính là thực sự bao gồm chuỗi port
trên kết nối:
const { MongoClient } = require("mongodb");
const uri = 'mongodb://localhost:27017'; // mongodb://localhost - will fail
(async function() {
try {
const client = await MongoClient.connect(uri,{ useNewUrlParser: true });
// ... anything
client.close();
} catch(e) {
console.error(e)
}
})()
Đó là một quy tắc "nghiêm ngặt" hơn trong mã mới. Điểm chính là mã hiện tại về cơ bản là một phần của mongodb
mã kho lưu trữ "trình điều khiển gốc nút" (npm ) và "mã mới" thực sự nhập từ mongodb-core
thư viện "củng cố" trình điều khiển nút "công khai".
Điểm của "tùy chọn" được thêm vào là "giảm bớt" quá trình chuyển đổi bằng cách thêm tùy chọn vào mã mới để trình phân tích cú pháp mới hơn (thực sự dựa trên xung quanh url
) đang được sử dụng trong mã thêm tùy chọn và xóa cảnh báo không dùng nữa, và do đó xác minh rằng các chuỗi kết nối của bạn được truyền vào thực sự tuân thủ những gì trình phân tích cú pháp mới đang mong đợi.
Trong các bản phát hành trong tương lai, trình phân tích cú pháp 'di sản' sẽ bị xóa và sau đó trình phân tích cú pháp mới sẽ chỉ đơn giản là những gì được sử dụng ngay cả khi không có tùy chọn. Nhưng vào thời điểm đó, dự kiến tất cả các mã hiện tại có nhiều cơ hội để kiểm tra các chuỗi kết nối hiện có của họ so với những gì trình phân tích cú pháp mới đang mong đợi.
Vì vậy, nếu bạn muốn bắt đầu sử dụng các tính năng trình điều khiển mới khi chúng được phát hành, thì hãy sử dụng các beta
bản phát hành có sẵn và tiếp theo và lý tưởng là đảm bảo bạn đang cung cấp một chuỗi kết nối hợp lệ cho trình phân tích cú pháp mới bằng cách bật useNewUrlParser
tùy chọn trong MongoClient.connect()
.
Nếu bạn thực sự không cần quyền truy cập vào các tính năng liên quan đến bản xem trước của bản phát hành MongoDB 4.0, thì hãy ghim phiên bản vào một 3.0.x
loạt như đã lưu ý trước đó. Điều này sẽ hoạt động như tài liệu và "ghim" điều này đảm bảo rằng các 3.1.x
bản phát hành không được "cập nhật" so với phụ thuộc dự kiến cho đến khi bạn thực sự muốn cài đặt phiên bản ổn định.
beta
phiên bản mà bằng cách nào đó đã được phát hành vào npm cuối tuần qua. Đừng lo lắng về điều đó cho đến khi API thực sự được hoàn thiện. Bạn đã làm đúng việc cài đặt một phiên bản ổn định.