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

Qual é a maneira correta de lidar com conexões de mangusto com express.js?


Se você já se conectou ao banco de dados, o once evento não será acionado novamente. O banco de dados já estava conectado para todo o processo NodeJs quando estava conectado globalmente (fora da função).

A chamada para mongoose.connect('mongodb://localhost/test'); faz a conexão e a abre.

Então, em vez de abri-lo em cada chamada de função (o que seria uma maneira ineficiente de interagir com o MongoDB) connect imediatamente quando o aplicativo NodeJs for iniciado, e considere que haverá um período em que a conexão pode não estar disponível (por ser assíncrona) ou não iniciar o aplicativo (listen ) até que a conexão seja concluída (ou com um tempo limite). Com o Mongoose, até que a conexão seja feita, todos os comandos são armazenados em buffer (mas esse pode não ser o comportamento que você deseja). Você pode usar o open evento se você quiser saber quando a conexão for concluída.

A conexão é encontrada aqui:mongoose.connection se você usar o connect função para criar a conexão.

Depois que a conexão for aberta, você poderá usá-la em seu popSingleData função sem usar o once evento e retorno de chamada. Há um pool de conexões mantido automaticamente.

Para saber mais sobre conexões, leia aqui .