[PM2] - Uma solução elegante para backend feito em node
Hello word ! 👋🏽
Espero que estejam bem.
Já é de conhecimento de todos os devs que os usuários finais sempre dão um jeito de quebrar nossos códigos certo? e por mais que os erros sejam devidamente tratados (o que é mais do que recomendado), não temos controle de tudo, eis que me deparo com a seguinte situação:
A historia por traz da necessidade
Trabalho em uma empresa como programador web fullstack, e estavamos com nosso back-end em node bonitinho, eis que quando colocamos em produção, alguns usuarios passaram a fazer requisições estranhas que não tinhamos tratado. Perdemos muito tempo restartando o servidor enquanto corrigiamos algumas coisas.
E foi assim que tive a necessidade de procurar uma solução para gerenciar meus processos em node. E encontrei a belezura do PM2.
Sobre o PM2
Se você se interessar pelo o que vou falar, pode clicar aqui para se aprofundar na documentação.
O pm2 é um gerenciador de processados, voltado principalmente para nodejs (você também pode gerenciar seu front). Ele permite que você incie diferentes processos no mesmo terminal (muito util para servidores como ubuntu server) e também ele coloca o seu beckend no ar caso ele caia por algum erro.
- Instalando o pm2
Use o seu gerenciador de pacotes preferido para instalar o pm2 globalmente.
npm install pm2@latest -g
# or
yarn global add pm2
- Iniciando um processo
Use pm2 start
para iniciar um processo e apresente o diretorio do arquivo (app.js
) que deseja iniciar.
pm2 start app.js
Você ainda pode usar o paramêtro --watch
para rodar como nodemon, assim que você fizer alguma alteração no arquivo, ele ira reinicar o processo.
pm2 start --watch app.js
- Parando um processo
Use pm2 stop
para iniciar um processo e apresente o diretorio do arquivo (app.js
) que deseja iniciar.
pm2 stop app.js
- Visualizando os processos em execução
Talvez o comando que você mais vai usar. Para quem sabe mexer um pouquinho no linux vai ser fácil de lembrar basta colocar:
pm2 ls
Isso retornara algo como isso:
- Visualizando logs
O pm2 possui um comando para observar os logs, com esta sintaxe:
pm2 logs app.js
Mas recomendo usar o monitor do pm2 para ver todos os processos em tempo real, além dos seus logs.
pm2 monit
Algo como isso vai aparecer:
Ou usar o magico pm2 plus
ele exige a criação de uma conta, porém é esteticamente melhor e mais facil de se usar, basta acessar a pagina o link que ele retorna no terminal.
O pm2 plus
tem essa estetica:
Isso é tudo sobre os comandos básicos do pm2, espero que isso seja tão enriquecedor para vocês, como foi para mim e minha equipe. Até a proxima <3