Como observado, a 3.1.0-beta4liberação do driver foi "liberada na natureza" um pouco cedo pela aparência das coisas. O lançamento faz parte do trabalho em andamento para oferecer suporte a novos recursos do MongoDB 4.0 e fazer outras alterações na API.
Uma dessas alterações que acionam o aviso atual é a useNewUrlParseropção, devido a algumas alterações na forma como a transmissão do URI da conexão realmente funciona. Mais sobre isso mais tarde.
Até que as coisas se acalmem, provavelmente seria aconselhável "fixar" pelo menos a versão menor para 3.0.xlançamentos:
"dependencies": {
"mongodb": "~3.0.8"
}
Isso deve impedir que a 3.1.xramificação seja instalada em instalações "novas" nos módulos do nó. Se você já instalou uma versão "mais recente", que é a versão "beta", limpe seus pacotes (e package-lock.json) e certifique-se de incluir a 3.0.xversão em série.
Quanto ao uso das "novas" opções de URI da conexão, a principal restrição é realmente incluir a portstring de conexão:
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)
}
})()
Essa é uma regra mais "estrita" no novo código. O ponto principal é que o código atual é essencialmente parte do mongodbcódigo do repositório "node-native-driver" (npm ) e o "novo código" realmente importa da mongodb-corebiblioteca que "sustenta" o driver do nó "público".
O ponto da "opção" que está sendo adicionada é "facilitar" a transição adicionando a opção ao novo código, para que o analisador mais recente (atualmente baseado em torno de url) esteja sendo usado no código que adiciona a opção e apaga o aviso de descontinuação e, portanto, verifica se suas cadeias de conexão transmitidas realmente estão de acordo com o que o novo analisador está esperando.
Em versões futuras, o analisador 'legado' será removido e, em seguida, o novo analisador será simplesmente o que é usado, mesmo sem a opção. Porém, nesse momento, espera-se que todo o código existente tenha ampla oportunidade de testar suas cadeias de conexão existentes contra o que o novo analisador está esperando.
Então, se você quiser começar a usar os novos recursos do driver como eles são liberados, em seguida, usar os disponíveis betalançamentos e subsequentes e, idealmente, certifique-se que você está fornecendo uma seqüência de conexão que é válido para o novo analisador, permitindo a useNewUrlParseropção na MongoClient.connect().
Se você realmente não precisa acessar recursos relacionados à visualização da versão MongoDB 4.0, atribua a versão a uma 3.0.xsérie, conforme observado anteriormente. Isso funcionará conforme documentado e "fixar" isso garante que as 3.1.xliberações não sejam "atualizadas" sobre a dependência esperada até que você realmente deseje instalar uma versão estável.
betaversão que de alguma forma foi lançada na NPM no fim de semana. Não se preocupe até que a API seja finalizada. Você fez a coisa certa ao instalar uma versão estável.