Administração do Node.js
Instalação
A instalação do Node.js não exige nenhuma preparação ou configuração especial. O endereço https://nodejs.org/en/download/ contém os links da versão apropriada para diversas plataformas.
Como resultado da instalação fica disponível um programa chamado node.
Executando-se o comando
node <enter>
entra-se no modo interativo (também conhecido como ambiente REPL).
Executando-se o comando
node app.js <enter>
o script JavaScript contido no arquivo app.js
será carregado e executado.
Configuração
Na maioria dos casos não há nenhuma configuração a ser feita no Node.js. As configurações que podem ser realizadas estão diretamente relacionadas à aplicação que está sendo executada.
Uma prática comum é definir variáveis de ambiente para configurar parâmetros utilizados na execução da aplicação.
O Node.js disponibiliza o objeto process.env para ter acesso a variáveis de ambiente.
Informações sensíveis (como senhas ou endereços de bases de dados usadas pela aplicação) não deveriam estar codificadas explicitamente no código fonte da aplicação.
É bastante comum também haver um ambiente de desenvolvimento, quando a aplicação está sendo desenvolvida/testada, e um ambiente de produção, quando está implantada e utilizada por usuários reais.
Por exemplo, vamos supor que durante o desenvolvimento de uma aplicação utiliza-se a base de dados BD_FORNECEDORES_TESTES
e em produção a base de dados BD_FORNECEDORES
. Na aplicação, o fragmento de código abaixo estabelece, hipoteticamente, uma conexão com a base de dados:
...
const banco = process.env.BANCO
const conexao = db.connect(banco)
...
Para executar a aplicação em modo de desenvolvimento basta definir a variável de ambiente BANCO:
No ambiente Linux/MacOS:
export BANCO='BD_FORNECEDORES_TESTES'
No ambiente Windows:
set BANCO='BD_FORNECEDORES_TESTES'
Mais do que uma simples conveniência, às vezes a definição de variáveis de ambiente podem impactar dramaticamente o desempenho da aplicação. Por exemplo, o framework Express utiliza a variável NODE_ENV para realizar otimizações nos seus algoritmos. Se o valor da variável for production
então será priorizado o desenpenho. Mas se o valor for diferente de production
ou não estiver definido o express assume que está em ambiente de desenvolvimento e priorizará a corretude do código recompilando o código a cada requisição. O seguinte post relata essa situação.
Gerenciamento
Gerenciar uma aplicação em produção é, no contexto deste documento, significa:
monitorar a aplicação para que esteja sempre no ar, reiniciando automaticamente sempre que houver necessidade.
explorar de modo eficiente o hardware que executa a aplicação. Por default, uma aplicação Node.js é single thread (só utiliza uma CPU).
O post Switching from cluster module to PM2 & RabbitMQ in Node.js faz uma exelente apresentação dos conceitos envolvidos com gerenciamento de aplicações Node.