NodeJS | Variável de Ambiente | #23

NodeJS | Variável de Ambiente | #23

Introdução ao Curso de JS

Apresentação do Curso

  • O instrutor dá as boas-vindas aos participantes e destaca o progresso feito até agora no curso de JavaScript.
  • É mencionado que já foram abordados muitos conteúdos, preparando os alunos para um novo módulo focado em boas práticas.

Importância das Boas Práticas

  • O instrutor enfatiza a necessidade de organizar o código e torná-lo mais profissional, introduzindo o módulo sobre boas práticas.
  • A primeira prática discutida será sobre variáveis de ambiente, explicando sua importância na programação.

Variáveis de Ambiente

Definição e Funcionamento

  • Variáveis de ambiente são definidas como variáveis disponíveis em todo o sistema operacional, permitindo que diferentes programas acessem essas informações.
  • Ao contrário das variáveis comuns criadas dentro de um programa, as variáveis de ambiente permanecem acessíveis enquanto o sistema estiver ativo.

Criação e Leitura

  • Cada sistema operacional possui métodos distintos para criar e acessar variáveis de ambiente; por exemplo, comandos diferentes no Windows e Mac.
  • O instrutor demonstra como visualizar uma variável de ambiente no terminal do Mac e menciona a diferença com o Windows.

Uso Prático das Variáveis de Ambiente

Aplicações em Desenvolvimento

  • A utilização de variáveis de ambiente é crucial para evitar alterações diretas no código-fonte quando se muda entre diferentes servidores ou ambientes.
  • Um exemplo prático é a configuração da porta em que uma aplicação deve rodar; isso pode variar conforme o servidor utilizado.

Vantagens da Abordagem

  • Manter informações sensíveis ou específicas fora do código-fonte ajuda a preservar a integridade do projeto e facilita mudanças sem necessidade de reescrever códigos.
  • O uso adequado das variáveis permite que cada desenvolvedor ajuste configurações específicas apenas nas suas máquinas sem impactar outros colaboradores.

Demonstração Prática

Criando Variável no Terminal

  • O instrutor mostra como usar process.env para acessar uma variável chamada "porta" diretamente do sistema operacional.
  • Ele explica os comandos necessários para criar uma variável no terminal, destacando as diferenças entre os sistemas operacionais (Mac vs. Windows).

Exibição da Variável Criada

Variáveis de Ambiente e seu Impacto no Desenvolvimento

Criação e Exibição de Variáveis de Ambiente

  • Para exibir uma variável de ambiente, deve-se usar o símbolo de porcentagem ao redor do nome da variável. No Mac, pode haver problemas com a execução.
  • Ao testar no Windows, utiliza-se set para definir a variável. No Mac, usa-se export. A criação da variável é temporária e só está disponível no terminal atual.

Testando a Disponibilidade das Variáveis

  • As variáveis criadas em um terminal não afetam outros terminais ou instâncias do Visual Studio Code. Elas são locais ao terminal onde foram definidas.
  • O código pode acessar as variáveis definidas no terminal usando process.env. É importante entender que o comando que inicia o programa pode não reconhecer essas variáveis se executado em um processo separado.

Problemas com Nodemon e Processos Separados

  • O Nodemon cria um processo separado que não reconhece as variáveis definidas anteriormente. Isso significa que mesmo após definir uma variável, ela pode não ser lida corretamente pelo aplicativo.
  • Para contornar isso, é possível exportar a variável diretamente antes de iniciar o aplicativo com comandos encadeados usando &&.

Ajustes na Porta do Servidor

  • Se a porta for definida diretamente no código (por exemplo, 5001), isso irá sobrescrever qualquer configuração feita via terminal. Portanto, é necessário utilizar a variável para garantir flexibilidade.
  • Alterações na porta devem ser feitas tanto no código quanto nas definições do terminal para refletir corretamente as mudanças desejadas.

Testes Finais e Comportamento das Variáveis

  • Após alterar a porta para 5002 e reiniciar o servidor, é crucial verificar se as alterações estão sendo aplicadas corretamente; caso contrário, ajustes adicionais podem ser necessários.
  • A utilização correta das variáveis garante que o servidor funcione conforme esperado sem confusões sobre qual porta está ativa.

Considerações sobre Configurações Globais

  • Embora seja possível criar variáveis globais para uso em diferentes terminais, isso requer configurações adicionais que podem complicar o desenvolvimento inicial.

Gerenciamento de Variáveis de Ambiente com o Pacote Dotenv

Introdução ao Pacote Dotenv

  • O uso constante de variáveis de ambiente pode ser complicado, mas o pacote dotenv facilita esse gerenciamento.
  • Para utilizar o pacote, é necessário importá-lo no início do arquivo com a linha import dotenv/config.

Criação e Utilização do Arquivo .env

  • O arquivo .env permite centralizar todas as variáveis de ambiente em um único local, simplificando a configuração da aplicação.
  • Após criar o arquivo .env, é possível iniciar a aplicação com npm start, que automaticamente carrega as variáveis definidas.

Vantagens do Uso do Arquivo .env

  • O uso do arquivo .env torna mais prático gerenciar as variáveis, evitando a necessidade de defini-las manualmente no terminal.
  • Este arquivo não deve ser enviado para repositórios como GitHub devido à possibilidade de conter informações sensíveis.

Segurança e Práticas Recomendadas

  • É importante adicionar o arquivo .env ao .gitignore para evitar que dados sensíveis sejam expostos em repositórios públicos.