Variáveis de Ambiente no Node.js com .env
Faaala dev (a), tudo bem por ai, ou você está já está há um bom tempo pesquisando sobre como gerenciar variáveis de ambiente no Node.js e não encontra algo que vá direto ao ponto, seja qual for o seu momento, vamos juntos resolver esse problema, que todo desenvolvedor, mais cedo ou mais tarde irá enfrentar. No dia a dia há diversas situações onde precisamos utilizar dados sensíveis, como usuário e senha do banco de dados, hash de token, etc… E para quem trabalha com o Node.js o .env é uma mão na roda.
Então vamos por a mão na massa, ou nesse caso, “mão no teclado”, veremos uma situação bem comum do dia a dia de um desenvolvedor, para isso nós criaremos uma projeto simples e objetivo, utilizando o Node.js e o Npm.
Vamos iniciar do zero, então crie um projeto em algum diretório no seu computador, acesse esse projeto no seu editor favorito, aqui eu utilizarei o Visual Studio Code, então abra o terminal integrado (“para isso use o seguinte atalho ‘Ctrl+Shift+’’), ou clique em “Terminal > Novo Terminal”, caso você não esteja usando o vscode, abra um terminal e acesse através dele o seu projeto. Com o terminal aberto digite “npm init -y” (o -y é para responder sim para todas as perguntas, e gerar o nosso arquivo package,json).
Show, agora nós temos o nosso projeto inicializado com o npm e podemos instalar o módulo do .env. Volte para o terminal e digite “npm install dotenv — save”, o npm irá baixar e instalar todos os pacotes em nossa aplicação:
Pronto, criamos o nosso projeto, iniciamos com o npm init e instalamos o pacote .env, o próximo passo é criar um arquivo na raiz do projeto, ele precisa ter esse nome ‘.env’, e pronto já podemos começar a manipular as variáveis de ambiente no Node.js.
Veja como é simples para salvar informações, basta colocar o “nomeDaVariavel = valorDaVariavel”, algumas observações:
° Não é uma regra, mas por convenção coloque o nome da variável em letra maiúscula
° O valor da variável não precisa estar dentro de aspas (“ ”), independente do tipo, seja date, int, boolean, etc…
° Não é recomendado o envio desse arquivo para o repositório, ou seja inclua-o no seu “.gitignore” caso esteja utilizando Git, ao invés disso crie um arquivo na raiz do projeto com o nome .env-config contendo apenas os nomes das variáveis de ambiente utilizadas, para que no futuro você ou outro desenvolvedor possa saber quais variáveis estão sendo utilizadas.
Para vermos o .env em ação, vamos criar um servidor básico que irá receber uma requisição na raiz, e irá retornar apenas um json com o valor da variável de ambiente, vamos fazer isso juntos que ficará mais fácil de entender.
Bora criar o nosso server, para isso iremos utilizar o express, volte para o terminal e digite “npm install express — save” e aguarde a instalação finalizar.
Show, com o express instalado, crie um arquivo na raiz do projeto, chamado app.js com o seguinte código:
É um código relativamente simples, primeiro nós importamos e criamos uma instância do express, em seguida criamos uma rota do tipo GET na raiz que irá retornar um json, com a aplicação rodando na porta 8080. Vamos rodar o nosso código, no terminal digite o seguinte comando “node app.js” para executarmos a nossa aplicação e subir o servidor.
Com a aplicação executando vamos testar se tudo esta ok, então acesse o seu navegador, postam, insomnia ou qualquer outra ferramenta para testes de API, o que você preferir, aqui eu irei usar o browser para testarmos, então basta acessar ‘localhost:8080’, se tudo der certo, devera retornar o json que setamos na rota no passo anterior.
Que massa, nosso servidor está rodando corretamente. Volte no app.js e importe o módulo do .env, iremos fazer um require sem guardar o valor em nenhuma variável local, assim você poderá acessar as variáveis de ambiente em qualquer lugar da aplicação, coloque-o antes de qualquer instrução, ou seja no nosso caso antes do require do express, o código é esse “require(‘.env).config()”.
Como já fizemos a importação do módulo .env em nossa aplicação, podemos usar esse recurso poderoso e tão importante. Vamos alterar a resposta da requisição Get que fizemos anteriormente com valor da variável que foi criada no arquivo .env.
Viu como é fácil? No Node.js para acessarmos variáveis de ambiente utilizamos o “process.env” seguido do nome da variável, agora faça uma nova request no servidor e você verá o retorno na tela com o valor da variável de ambiente.
Uhuuuu, deu certo!!!
Pronto, nossa aplicação já está utilizando uma ótima prática de segurança para não deixarmos informações sensíveis visíveis em nosso código. Claro que em ambiente de desenvolvimento o arquivo estará no seu computador, mas quando for subir a aplicação para uma hospedagem na internet, configure essas variáveis pelo painel da hospedagem e depois as referencie no código, assim como fizemos em nosso exemplo e seja feliz.
Bom, esse foi um breve tutorial de como usar variáveis de ambientes no Node.js com o .env, eu abordei apenas o básico e o necessário da utilidade das variáveis de ambiente, para que você possa utilizar no seu dia a dia, no próximo post, irei te mostrar como usar esse recurso em uma hospedagem para quando você for subir sua aplicação para produção, iremos criar as variáveis de ambiente no painel e referencia-las no código, irei te mostrar como trabalhar com o valores de desenvolvimento e de produção no mesmo arquivo .env como por exemplo as informações do banco de dados de desenvolvimento e o banco de dados de produção, e utilizando cada uma em seu cenário.
Espero que eu tenha te ajudado, se ficou alguma dúvida, ou precisar de ajuda em alguma situação, não hesite em me procurar para pedir ajuda, meu Linkedin clique aqui, agora caso queria o Facebook é esse aqui ficarei feliz em poder ajudar. Até a próxima.