nodeJs-liveCoding-DIO

Vamos iniciar o desenvolvimento com Node.js, conhecendo os conceitos e uso do Node com JavaScript e aplicando isso a um projeto: criar um servidor, subir e devolver uma mensagem em JSON com informações de uso da memória RAM."

Iniciando o projeto

Baixe o repositório pra sua máquina local para servir de guia na hora da live

o que é o NodeJS?

logo nodejs

O NodeJs é um ambiente de execução do JavaScript em server-side

Ok. Mas o que isso quer dizer? 🤔

Ele nos dá a possibilidade de rodar localmente o JavaScript fora do navegador por exemplo. 😎

Vamos falar um pouco sobre:

Como surgiu? 📒

Todo navegador possui um Interpretador de JavaScript rodando ali por trás dos panos para fazer as coisas funcionarem direitinho:

  • Safari - Nitro
  • Mozilla - SpiderMonkey
  • Edge - Chakra
  • Chrome - V8

Em 2009 um cara chamado Ryan Dahl criou o NodeJs a partir do V8 do Chrome.

E o que tem isso? 🙄

Com a criação do NodeJS, temos a possibilidade de rodar o JavaScript sem precisar de um navegador, diminuindo o processamento e trabalhando com interpretação just-in-time, em tempo real meus amigos.

OMG como assim?

O nodejs, diferente de outros interpretadores, trabalha com single-thread, ou seja, imagina que cada requisição é um pedido de delivery... vai chegar uma hora que o quadro de pedidos vai estar cheio e se tiver um pedido que ainda não foi produzido e entregue, ele vai bloquear a passagem dos outros pedidos, gerando insatisfação dos clientes. Coitado do entregador.

O nodejs trabalha com requisições assíncronas, ou seja, não precisa esperar todos os pedidos, vai entregando o que for ficando pronto. Assim todo mundo sai feliz.😊 Assim, o processamento é não-bloqueante(non-blocking), pois funciona mesmo sem uma requisição estar pronta, do contrário seria bloqueante(blocking) e tudo ficaria parado.

Consequentemente, o entregador não precisa mais ficar preocupado e entrega o pedido assim que o mesmo for finalizado, depois volta no quadro de pedidos, pega os que faltaram e entrega logo após. Chamamos isso de Event-Loop.

Isso tudo em tempo real 😮😮😮.

NPM (Node package manager)

Com a criação do NodeJS também surgiu o NPM. que é uma ferramenta de gerenciamento de pacotes do Node, serve pra gente dar um upgrade nos nossos projetos usando frameworks e bibliotecas.

Imagine um repositório gigantesco com inúmeras ferramentas de desenvolvimento... esse é o NPM do NodeJS.

Bora praticar?

O que vamos fazer:

Criar um servidor, subir e devolver uma mensagem em JSON com informações de uso da memória RAM."



* Exemplo do servidor local:
http://localhost:3000

server

  • Exemplo:
index valor
OS sistema operacional
Arch arquitetura
TotalRAM memória total
FreeRAM memória livre
Usage porcentagem de uso

pcRamUsage

Mas antes...

Vamos instalar as ferramentas e deixar o ambiente nos trinques.

Links para baixar as ferramentas:
NodeJS
VSCode

Segue esse link que tem o passo a passo da live: