‫Instrutor: Olá, seja bem-vindo de volta.
‫Então, agora é finalmente hora de conectar o banco de dados
‫MongoDB que criamos com nosso aplicativo Express.
‫E, a primeira etapa para fazer
‫isso é realmente obter nossa string de conexão do Atlas.
‫Então, assim como fizemos antes, quando conectamos o banco de
‫dados ao Compass e ao Mongo Shell,
‫precisamos obter nossa string de
‫conexão para conectar o aplicativo a este banco de dados hospedado.
‫Agora, caso você não esteja usando o banco de
‫dados hospedado no Atlas, também mostrarei
‫como conectar seu banco de dados local
‫ao aplicativo um pouco mais adiante neste vídeo.
‫De qualquer forma, é só clicar aqui em Connect Your Application e
‫então esta é a nossa string de conexão.
‫Apenas certifique-se de selecionar Nó. js aqui, na verdade,
‫porque a string pode mudar com base nisso.
‫Agora, também precisamos da versão.
‫E, claro, já passa das três.
‫E então, vamos agora copiar nossa string de conexão e, em seguida,
‫de volta em nosso aplicativo, nós a criamos
‫como uma variável de ambiente aqui em
‫nosso arquivo de configuração.
‫Então, eu já tenho DATABASE_PASSWORD.
‫Vamos criar o DATABASE agora.
‫E então, coloque nosso barbante aqui.
‫Agora, duas coisas sobre esta string de conexão.
‫Primeiro, aqui neste lugar, precisamos colocar nossa senha.
‫Agora, poderíamos seguir em frente e copiar a senha daqui
‫e depois colá-la aqui, mas prefiro
‫deixá-la em uma variável separada e, em
‫seguida, substituí-la no código.
‫Na verdade, vou mudar essa senha aqui para
‫uma senha em maiúsculas.
‫Então, PASSWORD para torná-lo um pouco mais visível.
‫Em segundo lugar, este aqui é realmente nosso host,
‫basicamente o lugar onde o banco de dados está hospedado
‫e, em seguida, / test.
‫Agora, este teste aqui é o nome do banco de dados
‫ao qual queremos nos conectar.
‫E, no nosso caso, já criamos a base de dados natours.
‫Vamos verificar isso aqui no Compass.
‫E, se formos aqui para
‫COLEÇÕES, vemos que aqui, já temos nosso banco de dados natours.
‫Então, fizemos isso no final da última seção.
‫Você lembra?
‫E então, é muito importante que
‫aqui, nesta string de conexão, substituamos este teste pelo nome
‫de nosso banco de dados.
‫Então, natours, ok?
‫Então, muito importante aqui, de novo,
‫não esqueça de colocar isso aqui, caso contrário,
‫não vai funcionar.
‫Agora, caso você esteja usando o banco de
‫dados local como mencionei antes,
‫essa string de conexão é muito mais fácil.
‫Então, vamos
‫apenas criar uma variável para esse também, DATABASE_LOCAL.
‫Mas, novamente, se você estiver usando essa string de banco de dados
‫aqui, não precisa se preocupar com esta parte.
‫Só estou fazendo isso para
‫o caso de você estar usando o local.
‫E então, neste caso, é bem simples.
‫É apenas mongodb e este é um tipo de protocolo aqui.
‫Portanto, em vez de http, o Mongo usa esses como mongodb e
‫protocolo ou algo assim.
‫Então, localhost e depois a
‫porta, que já
‫falamos algumas vezes e é 27017, lembra disso?
‫E então, como antes, também precisamos
‫especificar o nome do banco de dados, que
‫deve ser natours.
‫Agora, para que isso funcione,
‫é claro, você precisa manter seu servidor
‫MongoDB para que o processo Mongo D funcione o tempo todo.
‫Então, mudando para o terminal.
‫Então, esse processo local aqui é o que eu quero dizer.
‫Portanto, nunca feche este processo, portanto, esta janela de terminal, quando estiver
‫trabalhando com seu banco de dados local.
‫Então, caso contrário, não vai funcionar.
‫E é isso para configuração.
‫Em seguida, precisamos instalar um driver MongoDB,
‫basicamente um software que permite que nosso código
‫Node acesse e interaja com um banco de dados MongoDB.
‫E, há alguns drivers MongoDB diferentes, mas
‫vamos usar
‫aquele que eu diria que
‫é o mais popular, chamado Mongoose, que adiciona
‫alguns recursos ao driver MongoDB mais nativo.
‫Mas, não se preocupe, na próxima
‫aula, você vai aprender tudo sobre o Mongoose e por
‫que o estamos usando.
‫Por enquanto, vamos instalá-lo.
‫Então, mangusto, e a versão
‫que vou usar é a versão cinco,
‫então vá em frente e instale a versão cinco também para
‫que estejamos na mesma página com o nosso código aqui.
‫Então, no momento em que você estiver
‫assistindo a este vídeo, Mongoose seis, ou mesmo sete, talvez,
‫já esteja lá fora e
‫então algo pode ter
‫mudado e então seu código pode não funcionar exatamente da mesma maneira.
‫Portanto, instale a versão cinco porque, na
‫verdade, é uma versão bastante estável
‫neste ponto e não acho
‫que eles irão adicionar muitos recursos importantes no
‫futuro.
‫Então, em nosso pacote. json, agora deve estar aqui.
‫Então, 5. 5 2, o seu provavelmente é um
‫pouco mais tarde, mas isso não deve ser um problema.
‫Vamos agora para o servidor. js aqui, que, lembre-se,
‫é uma espécie de arquivo onde fazemos
‫toda a configuração do nosso aplicativo.
‫Por exemplo, as variáveis de
‫ambiente ou as importações ou o aplicativo Express.
‫E também iniciamos o servidor aqui.
‫E então, este também
‫é o arquivo onde vamos configurar o MongoDB.
‫Então, vamos começar exigindo nosso pacote de mangusto aqui.
‫E então, agora temos acesso à variável
‫mongoose e aí, simplesmente chamamos o método de conexão.
‫Agora, neste método de conexão, precisamos, é
‫claro, passar nossa string de conexão de banco de dados.
‫Mas, lembre-se que lá dentro ainda temos a senha.
‫Então, basicamente esse espaço reservado para senha aqui.
‫E assim, antes de passarmos a
‫string, precisamos realmente substituí-la.
‫Portanto, substitua-a pela senha real que temos aqui.
‫Então, vamos fazer isso rapidamente.
‫E, simplesmente vou chamar essa variável de DB para banco de dados.
‫E então, vamos começar nosso processo. env. BASE DE DADOS.
‫Então, essa é, obviamente, nossa variável onde a
‫string aqui é armazenada.
‫Então, estamos pegando isso e, em seguida, substituindo.
‫E queremos substituir PASSWORD.
‫Isso aqui vem do pacote HTML close tag que
‫tenho no meu código VS.
‫Então, processe. env. DATABASE_PASSWORD.
‫Dê uma chance.
‫E, ok, isso faz sentido.
‫Portanto, estamos simplesmente substituindo esta string
‫de espaço reservado por nossa senha real nesta string de conexão.
‫E então, agora podemos usar essa variável
‫em nossos mangustos. conectar().
‫Então, aqui, o primeiro argumento é
‫na verdade aquela string de conexão, então DB.
‫E então, em segundo lugar, passamos um objeto
‫com algumas opções e essas são apenas algumas opções
‫que precisamos especificar para lidar com alguns avisos de depreciação.
‫Portanto, não se preocupe muito com esses.
‫Portanto, useNewUrlParser, defina-o como verdadeiro.
‫Em seguida, precisamos usar useCreateIndex, também definido
‫como true.
‫Em seguida, useFindAndModify e defina-o
‫como falso.
‫Portanto, novamente, estas são apenas algumas opções para
‫lidar com alguns avisos de depreciação.
‫E então, quando você estiver criando seus
‫próprios aplicativos, vá em frente e use exatamente o mesmo.
‫Agora, este método de conexão aqui vai retornar
‫uma promessa e então vamos realmente lidar com essa promessa usando then ().
‫E, esta promessa aqui realmente obtém acesso a
‫um objeto de conexão.
‫Então, vamos simplesmente chamá-lo de con aqui para conexão.
‫Então, basicamente
‫essa conexão será o valor resolvido da promessa.
‫E então, só para mostrar que estamos
‫realmente conectados, quero apenas registrar este objeto no console.
‫Então, console. log de conexão e na verdade
‫eu quero ver a propriedade de conexões lá.
‫E também podemos registrar
‫no console algo como conexão de banco de dados bem-sucedida.
‫Dê um save aqui.
‫E então, é claro, ele exibe esses avisos aqui
‫por causa de nosso ESLint, mas não se preocupe com isso.
‫É assim que o configuramos.
‫E então,
‫vamos prosseguir e realmente executar este aplicativo.
‫Agora, deixe-me lembrar que tipo de scripts temos.
‫Então, temos start: dev e start: prod.
‫Agora, como nosso script aqui não é
‫apenas denominado start,
‫que é uma espécie de padrão, sempre temos que digitar npm
‫run start: dev em vez de escrever apenas npm start, sem run.
‫E então, deixe-me ir em
‫frente e mudar o nome aqui de volta para começar.
‫E então, temos o início da produção.
‫Então, npm start.
‫O aplicativo está funcionando agora.
‫E, de fato, nossa conexão com o banco de dados foi bem-sucedida.
‫Tão bom.
‫E agora, aqui temos nosso objeto de conexões e,
‫como você pode ver, há um monte de
‫coisas aqui e podemos ver nosso nome de usuário aqui, host,
‫a senha, é claro.
‫E, essas coisas aqui realmente não importam, é claro.
‫Eu só queria registrá-lo
‫aqui para vermos se nossa conexão foi realmente bem-sucedida.
‫E então, vamos nos livrar disso.
‫E podemos realmente nos livrar de tudo isso aqui também.
‫Portanto, esta é apenas uma linha aqui.
‫Oh sim, só faltando este parêntese.
‫Agora, aqui, ele está me dizendo que declaramos essa variável, mas
‫nunca a usamos, então vamos, de fato, nos livrar dela.
‫Agora, apenas como uma
‫etapa final, deixe-me mostrar como também podemos
‫nos conectar ao banco de dados
‫local, novamente, caso você esteja usando aquele.
‫Então, vamos apenas duplicar esta linha, comentá-la.
‫Então, esta é a versão do banco
‫de dados hospedado e aqui teríamos apenas que colocar a versão local.
‫Então, isso é DATABASE_LOCAL.
‫Vamos dar uma chance.
‫E, também estamos conectados com sucesso a esse.
‫Então, é assim que você faria nesse caso.
‫Mas, como eu disse,
‫neste curso, vamos realmente usar o hospedado,
‫então é esse que estou mantendo aqui.
‫Na verdade, estou excluindo este.
‫Nós não precisamos mais disso.
‫Agora, é claro, também
‫pode haver problemas de conexão com o banco de dados.
‫Por exemplo, o host pode estar
‫inativo ou pode haver algum erro em nossa string
‫de conexão e, nesse caso, devemos detectar esse erro.
‫Mas deixaremos o tratamento de
‫erros um pouco mais tarde no
‫curso e, por enquanto, não estou tendo nenhum método catch aqui.
‫Apenas o método then
‫aqui, presumindo que tudo funcione bem.
‫E, agora, finalmente, quero realmente ir
‫em frente e
‫excluir a coleção que já criamos em
‫nosso banco de dados apenas para que nosso driver Mongoose
‫não interfira com isso de forma alguma, para que não haja nenhum problema.
‫E então, vamos voltar para Atlas aqui.
‫Acesse nossas COLEÇÕES.
‫E então, simplesmente exclua a coleção daqui.
‫E agora, precisamos colocar aqui o nome da
‫coleção para não cometermos nenhum erro aqui.
‫Então, pare e, tudo bem.
‫Então, agora temos um banco de
‫dados vazio aqui, pronto para começar a preencher com nossos dados
‫começando nos próximos dois vídeos.