Variaveis de Ambiente em Node.js (.env)

Quando desenvolvemos alguma aplicação backend, precisamos tomar cuidado ao lidar com informações sensíveis. Informações como URL de conexão de banco de dados, senha do banco, chaves secretas, tokens e entre outras variáveis, se expostas podem gerar falhas de segurança críticas em nossa aplicação. Para solucionar esse problema de exposição, podemos armazenar essas informações em variáveis de ambiente Criando variável de ambiente em NodeJS Para criar uma variável de ambiente, crie um arquivo na pasta raiz do seu projeto/aplicação com o nome de .env. Esse arquivo será responsável por guardar aquelas informações sensíveis e NÃO deve ser versionado. exemplo de como o .env deve ficar: APP_NAME=Meu app SECRET_API= # Servidor PORT=3000 # Banco de dados DB_NAME=seuBanco DB_PASS=suaSenha DB_HOST=localhost A partir desse arquivo podemos ter noção de algumas regras: A estrutura é CHAVE=VALOR A chave é em caixa alta por padrão e em SNAKE_CASE Todo valor retornado sempre será string, independente do tipo digitado Uma chave pode ser vazia, e retorna uma string vazia Agora que adicionamos as informações secretas dentro do nosso arquivo .env precisamos adicionar o pacote dotenv ao nosso projeto para que possamos gerenciar as variáveis de ambiente dentro do projeto. Instalação do pacote dotenv usando npm: npm install dotenv usando yarn: yarn add dotenv Em seguida inicializamos o pacote para que ele leia o arquivo .env: import 'dotenv/config'; // ou então import dotenv from 'dotenv'; dotenv.config(); Agora usaremos a ferramenta process.env, nativa do node, para substituir os valores no local de cada chave adicionada ao .env. Utilizando process.env.[NOME_DA_CHAVE] Exemplo com a porta do servidor: import express from 'express' // Servidor const server = express() server.listen(process.env.PORT, () => { console.log("Servidor rodando!") }) Boas práticas Importante relembrar que o arquivo .env NÂO deve ser versionado, portanto se for subir o código no github, lembre-se de adicionar o arquivo ao gitignore para ele não enviar o arquivo para o seu repositório. Outra boa prática, é criar um arquivo de exemplo com as chaves sem os valores sensiveis, assim quem clonar seu repositório não ficará perdido. Eu crio um arquivo .env.example com apenas chaves. Agradecimentos Se você ficou até aqui, agradeço de coração. Até mais! Referencias Fique a vontade para ler as documentações e aprofundar seus conhecimentos! dotenv repo dotenv - npm Node process docs

Apr 14, 2025 - 17:51
 0
Variaveis de Ambiente em Node.js (.env)

Quando desenvolvemos alguma aplicação backend, precisamos tomar cuidado ao lidar com informações sensíveis.

Informações como URL de conexão de banco de dados, senha do banco, chaves secretas, tokens e entre outras variáveis, se expostas podem gerar falhas de segurança críticas em nossa aplicação.

Para solucionar esse problema de exposição, podemos armazenar essas informações em variáveis de ambiente

developer

Criando variável de ambiente em NodeJS

Para criar uma variável de ambiente, crie um arquivo na pasta raiz do seu projeto/aplicação com o nome de .env. Esse arquivo será responsável por guardar aquelas informações sensíveis e NÃO deve ser versionado.

exemplo de como o .env deve ficar:

APP_NAME=Meu app

SECRET_API=

# Servidor
PORT=3000

# Banco de dados
DB_NAME=seuBanco
DB_PASS=suaSenha
DB_HOST=localhost

A partir desse arquivo podemos ter noção de algumas regras:

  • A estrutura é CHAVE=VALOR
  • A chave é em caixa alta por padrão e em SNAKE_CASE
  • Todo valor retornado sempre será string, independente do tipo digitado
  • Uma chave pode ser vazia, e retorna uma string vazia

Agora que adicionamos as informações secretas dentro do nosso arquivo .env precisamos adicionar o pacote dotenv ao nosso projeto para que possamos gerenciar as variáveis de ambiente dentro do projeto.

Instalação do pacote dotenv

usando npm:

npm install dotenv 

usando yarn:

yarn add dotenv

Em seguida inicializamos o pacote para que ele leia o arquivo .env:

import 'dotenv/config';
// ou então
import dotenv from 'dotenv';
dotenv.config();

Agora usaremos a ferramenta process.env, nativa do node, para substituir os valores no local de cada chave adicionada ao .env. Utilizando process.env.[NOME_DA_CHAVE]

Exemplo com a porta do servidor:

import express from 'express'
// Servidor

const server = express()

server.listen(process.env.PORT, () => {
    console.log("Servidor rodando!")
})

Boas práticas

Importante relembrar que o arquivo .env NÂO deve ser versionado, portanto se for subir o código no github, lembre-se de adicionar o arquivo ao gitignore para ele não enviar o arquivo para o seu repositório.

Outra boa prática, é criar um arquivo de exemplo com as chaves sem os valores sensiveis, assim quem clonar seu repositório não ficará perdido.

Eu crio um arquivo .env.example com apenas chaves.

Agradecimentos

Se você ficou até aqui, agradeço de coração.
Até mais!

Referencias

Fique a vontade para ler as documentações e aprofundar seus conhecimentos!

dotenv repo
dotenv - npm
Node process docs