Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida -- 9. Cordão umbilical servidor e banco (vídeo 3)

Boa noite Flávio tudo bom. Eu não entendi direito essa questão do DataBase receber um parâmetro uma url de conexão. Do jeito que está aqui abaixo funciona também normalmente.

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/alurapic');

mongoose.connection.on('connected', function() {
    console.log('Conectado ao MongoDB')
});

    mongoose.connection.on('error', function(error) {
        console.log('Erro na conexão: ' + error);
    });    

    mongoose.connection.on('disconnected', function() {
        console.log('Desconectado do MongoDB')
    });

    process.on('SIGINT', function() {
        mongoose.connection.close(function() {
            console.log('Aplicação terminada, conexão fechada')
            process.exit(0);
        });

    })

Porque você mudou para module.exports = function(uri) ... eu não entendi a vantagem que isso me trás. Quando você torna o dataBase genérico como você fala o que isso quer dizer ... eu entendo em poder receber tudo ... e seu eu poder receber tudo isso é uma vantagem para o meu banco de dados, em fim eu não entendi.

Att. Gabriel.

5 respostas

Gabriel, isso permite que o módulo seja reutilizado por outro sistema. Quem usa o módulo passa a url. Se a url fica fixa no módulo você não pode reaproveita-lo.

Foi Gabriel?

Mais ou menos … que outro sistema poderia ser implementado por exemplo ... não estou enxergando isso.

solução!

É o mesmo conceito de reuso de função que você aprende quando começa a aprender JavaScript.

Você pode clicar várias aplicações, uma para cada cliente. Certo? Cada aplicação vai ter seu banco de dados, certo? Cada aplicação precisará ter o código que configura a conexão, certo? Nesse caso, você teria que reescrever o código que cria a conexão para todas elas.

Mas.... se você faz o módulo receber o caminho da conexão, todas as outras aplicações podem usar o mesmo módulo que configura aplicação passando cada uma a sua URL específica para conectar no banco. Bingo! Assim que você estará reutilizando um código que já escreveu.

Talvez vez seja interessante você dar uma olhadinha nos cursos iniciais de JavaScript da alura para pegar esse traquejo, porque isso que expliquei é o princípio de reuso de funções, mas no caso queremos reutilizar um módulo. Confira lá depois se achar interessante para ficar ainda melhor nessa questão.

Sucesso e bom estudo Gustavo.

Obrigado, entendi.