...Tenho meu arquivo de conexão db e outro arquivo "protegido", onde estão minhas credenciais, e esse arquivo está incluído em .gitignore. Eu importo e chego aos dados..
A maneira correta de fazer isso é usar variáveis ambientais.
Usar variáveis ambientais
As variáveis ambientais são definidas no ambiente , ou seja, sua máquina de desenvolvimento local ou o servidor de produção remoto. Em seguida, em seu aplicativo, você lê as variáveis de ambiente e as usa adequadamente.
Há (pelo menos) algumas razões pelas quais geralmente é feito assim:
- As credenciais não existem em um arquivo que possa ser lido por alguém que esteja visualizando o conteúdo do repositório. Alguém clonando o repositório não precisa saber seu credenciais do banco de dados.
- As credenciais provavelmente são diferentes entre os ambientes. Você provavelmente está usando um banco de dados diferente em sua máquina de desenvolvimento local e um banco de dados diferente em seu servidor de produção remoto.
Veja como você define as variáveis de ambiente (isso é para Linux, outros sistemas operacionais podem ser diferentes):
$ export MONGO_DB_USERNAME=foo
$ export MONGO_DB_PASSWORD=bar
e veja como você os lê no Node.js:
console.log(process.env.MONGO_DB_USERNAME) // logs 'foo'
console.log(process.env.MONGO_DB_PASSWORD) // logs 'bar'
ou passe variáveis para o processo ao iniciar
Alternativamente, você pode passar variáveis ao iniciar o processo assim:
$ MONGO_DB_USERNAME=foo MONGO_DB_PASSWORD=bar node app.js
No entanto, isso geralmente é desencorajado, pois você provavelmente está iniciando seu processo através do script npm start. Desde
package.json
, onde o npm start
comando é definido, está sempre comprometido com o repositório, ele anula todo o propósito de ocultar as credenciais.