MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoError:a topologia foi destruída ao usar com a API NextJs


O problema que você está tendo vem desta linha:
  await client.close();

Dos documentos:

Significado quando você close no cliente, todas as outras conexões abertas também fecham. No seu caso, #2 e #4 começam a ser executados logo após #1 e #3 (mas antes de terminarem), e você fecha a conexão enquanto ainda estão em execução.

Também dos documentos:

Seria uma prática recomendada ter algum gerenciamento de estado para suas funções sem estado (eu sei), ter um serviço de conexão que apenas fornecesse a conexão às suas funções sem estado, também seria mais fácil gerenciar erros dessa maneira.

Leia mais sobre isso aqui e nos documentos do driver nodejs

Uma solução rápida (e muito abaixo do ideal) para o seu problema seria definir a conexão dentro da função assim:
// remove the definition from here

export default async (req, res) => {
     // and move it here
     const client = new MongoClient(process.env.DB_URI, {});
     await client.connect();

      .....

     await client.close();
};