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

Ideia de implementação da string de conexao do MongoDB - Projeto API Biblioteca em Node

Fiz uma mudança no código, uma ideia que eu pensei e implementei na conexão com o MongoDB. A professora ensinou a chamar a string de conexão com o banco de dados dentro do arquivo dbConnect.js, mas, a string de conexao é uma parte sensivel do nosso banco e nao deve ser enviado para o repositorio. Para resolver isso, eu deixei a string de conexao em um arquivo separado e importei no dbConnect.js.

1: criei um arquivo separado chamado stringDeConexaoMongoDB.

2: criei uma função nova dentro desse arquivo e acrescentei a string de conexao dentro dela

3: exportei a função do novo arquivo e importei dentro do dbConnect.js

4: Fiz os teste e a conexão com o banco foi realizada com sucesso, após isso eu subi as alteraçoes para meu GitHub e tudo ok como esperado, com o arquivo stringDeConexaoMongoDB sendo ignorado.

Meus codigos ao final ficou assim:

dbConect.js:

/*
- Nesse arquivo usaremos a string de conexão com o MongoDB, mas a 
string de conexao está em outro arquivo, por ser uma parte sensivel.
*/

//chamando a biblioteca mongoose para a conexao com o banco de dados funcionar
import mongoose, { mongo } from "mongoose";

//chamando a string de conexao, dentro de um arquivo separado por ser um conteudo sensivel
import stringDeConexaoBancoMongoDB from "./stringDeConexaoMongoDB.js";

async function conectaNaDataBase() {

    //retornando a função que contém a string de conexao, dentro de um arquivo separado por ser um conteudo sensivel
    //a string de conexao está no arquivo stringDeConexaoMongoDB.js
    stringDeConexaoBancoMongoDB();

    return mongoose.connection;
}

export default conectaNaDataBase;


//FIM DA PAGINA dbConnect.js 

novo arquivo, stringDeConexaoMongoDB.js :


/*
- Nesse arquivo conterá a string de conexão com o MongoDB, que será usada para conectar a aplicação com o banco de dados.
- Salvando nesse arquivo a string de conexao para acrescentar ao .gitignore e evitar que essa parte sensivel vá para o repositório.
- Ao precisar usar a string de conexao, só chamar a função stringDeConexaoBancoMongoDB no arquivo dbConnect.js
*/

//chamando a biblioteca mongoose para a conexao com o banco de dados funcionar
import mongoose from "mongoose";

//salvei a string de conexao em uma variavel para poder exportar e importar em outros arquivos
async function stringDeConexaoBancoMongoDB() {

    //string de conexão com o MongoDB, colocar aqui dentro
    //ex: mongoose.connect("aqui dentro a chave");
    
    return mongoose.connection;
}

//exportando a função que contém a string de conexão para chamar no arquivo dbConnect.js
export default stringDeConexaoBancoMongoDB;

//FIM DA PAGINA stringDeConexaoMongoDB.js

Arquivo app.js mantive como em aula.

Uma outra forma de implementar a mesma ideia de ignorar arquivos sensiveis, é utilizar a biblioteca .env, na aula ensina isso. Mas essa forma que eu fiz, foi por conta propria, fui pensando na logica ate montar e deu certo.

2 respostas
solução!

Espero ter ajudado, bons estudos a todos.

Olá, José. Tudo bem?

Obrigado por compartilhar sua sugestão e seu código aqui com a gente

Muito bom como você separou a string de conexão para evitar que informações sensíveis sejam expostas. Isso é uma prática importante em projetos reais. Usar um arquivo específico e garantir que ele seja ignorado pelo .gitignore mostra seu cuidado com a segurança dos dados do arquivo.

Sua ideia faz sentido, e outra alternativa que você mencionou é usar variáveis de ambiente. Top! Parabéns pela iniciativa e dedicação.

Conte com o apoio do Fórum. Abraços e bons estudos!