Як зазначалося, 3.1.0-beta4
випуск водія потрапив "в дику природу" трохи рано за виглядом речей. Випуск є частиною незавершеної роботи з підтримки новіших можливостей майбутнього випуску MongoDB 4.0 та внесення інших змін API.
Однією з таких змін, що викликає поточне попередження, є useNewUrlParser
можливість, обумовлена деякими змінами навколо того, як фактично працює URI з'єднання. Детальніше про це пізніше.
Поки речі "не впорядкуються", можливо, було б доцільно "прив'язати" принаймні до другорядної версії для 3.0.x
релізів:
"dependencies": {
"mongodb": "~3.0.8"
}
Це повинно зупинити встановлення 3.1.x
гілки на "свіжих" установках до модулів вузлів. Якщо ви вже встановили "останню" версію, яка є "бета" версією, тоді вам слід очистити ваші пакунки (та package-lock.json
) і переконатися, що ви переходите до 3.0.x
версії серії.
Що стосується власне використання параметрів URI з'єднання, головне обмеження полягає в тому, щоб насправді включити port
рядок з'єднання:
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)
}
})()
Це більш "суворе" правило в новому кодексі. Основний момент полягає в тому, що поточний код по суті є частиною mongodb
коду сховища "node-native-driver" (npm ), а "новий код" фактично імпортує з mongodb-core
бібліотеки, що "підкреслює" драйвер "public".
Суть доданої "опції" полягає в "полегшенні" переходу шляхом додавання опції до нового коду, так що новіший аналізатор (фактично заснований навколо url
) використовується в коді, додаючи параметр і очищаючи попередження про депресію, а тому перевіряючи, що передані вами рядки з'єднання фактично відповідають тому, що очікує новий аналізатор.
У майбутніх випусках «застарілий» аналізатор буде видалений, і тоді новий аналізатор буде просто тим, що використовується навіть без опції. Але до того часу, як очікується, всі існуючі коди мали достатньо можливостей перевірити свої існуючі рядки з'єднання на те, що очікує новий аналізатор.
Отже, якщо ви хочете почати використовувати нові функції драйвера після їх випуску, тоді використовуйте доступні beta
та наступні версії та в ідеалі переконайтесь, що ви надаєте рядок з'єднання, що є дійсною для нового аналізатора, включивши useNewUrlParser
опцію в MongoClient.connect()
.
Якщо вам насправді не потрібен доступ до функцій, пов’язаних із попереднім переглядом випуску MongoDB 4.0, прикріпіть версію до 3.0.x
серії, як було зазначено раніше. Це спрацює як задокументовано, і "прикріплення" це гарантує, що 3.1.x
випуски не "оновлюються" над очікуваною залежністю, поки ви фактично не захочете встановити стабільну версію.
beta
версії, яка якось вийшла в npm за вихідні. Не хвилюйтеся з цього приводу, поки API фактично не буде завершено. Ви правильно зробили, встановивши стабільну версію.