Como observado, a 3.1.0-beta4
liberaçã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 useNewUrlParser
opçã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.x
lançamentos:
"dependencies": {
"mongodb": "~3.0.8"
}
Isso deve impedir que a 3.1.x
ramificaçã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.x
versão em série.
Quanto ao uso das "novas" opções de URI da conexão, a principal restrição é realmente incluir a port
string 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 mongodb
código do repositório "node-native-driver" (npm ) e o "novo código" realmente importa da mongodb-core
biblioteca 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 beta
lanç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 useNewUrlParser
opçã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.x
série, conforme observado anteriormente. Isso funcionará conforme documentado e "fixar" isso garante que as 3.1.x
liberações não sejam "atualizadas" sobre a dependência esperada até que você realmente deseje instalar uma versão estável.
beta
versã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.