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.envpara 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
setpara definir a variável. No Mac, usa-seexport. 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
dotenvfacilita 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
.envpermite 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 comnpm start, que automaticamente carrega as variáveis definidas.
Vantagens do Uso do Arquivo .env
- O uso do arquivo
.envtorna 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
.envao.gitignorepara evitar que dados sensíveis sejam expostos em repositórios públicos.