DEV Community

Cover image for Erro!!! Mongoose Deprecation Warning the strictQuery
André Peixoto
André Peixoto

Posted on

Erro!!! Mongoose Deprecation Warning the strictQuery

Calma lá, é simples de resolver!


1- Não precisa usar o next.config.js, acredite, é mais simples que isso

2- Não precisa instalar a biblioteca DotEnv


Por isso mesmo foi a solução que eu adotei… é nativa do NextJS e muito simples de aplicar.

Passo 1

Pra ter chegado nesse erro, você já criou o aquivo .env.local e provavelmente usou o parametro MONGODB-URI=”” como no exemplo abaixo.

// file .env.local
MONGODB_URI='mongodb+srv://admin:<PASSWORD>@cluster0.zcxjukj.mongodb.net/?retryWrites=true&w=majority'
Enter fullscreen mode Exit fullscreen mode

Mas aqui está o problema, o NextJS não transfere essa variável pro client, ela está somente no Server, por isso está passando como “undefined”.

Mas é simples de resolver… coloque NEXT_PUBLIC_ no nome da variável no .env.local, como no exemplo abaixo 👇

// file .env.local
NEXT_PUBLIC_MONGODB_URI='mongodb+srv://admin:<PASSWORD>@cluster0.zcxjukj.mongodb.net/?retryWrites=true&w=majority'
Enter fullscreen mode Exit fullscreen mode

Pronto, agora você pode chamar a variável pelo process.env.

Basta acrescentar antes da chamada esse código mongoose.set(“strictQuery”, true);

Coloquei abaixo um trecho do código.

mongoose.set("strictQuery", true);

const connectMongo = async () => {
 try {
  const { connection } = await mongoose.connect(process.env.NEXT_PUBLIC_MONGODB_URI, {
   useNewUrlParser: true,
   useUnifiedTopology: true,
  });

<seu código aqui>

};
Enter fullscreen mode Exit fullscreen mode

Lembre-se de reiniciar o servidor pra variável NEXT_INPUT ser definida e você poder consumir no seu código.

Top comments (0)