O que é o NodeJS?

O Node.js é um ambiente de runtime JavaScript do lado do servidor, de software livre e multiplataforma baseado no mecanismo JavaScript V8 do Chrome, originalmente criado por Ryan Dahl e lançado em 2009.

O Node.js funciona no Windows?

Sim. O Windows dá suporte a dois ambientes diferentes para o desenvolvimento de aplicativos com o Node.js:

Para obter ajuda sobre como determinar qual ambiente deve ser usado, confira Devo fazer a instalação no Windows ou no Subsistema do Windows para Linux?

O que você pode fazer com o NodeJS?

O Node.js é usado principalmente para criar aplicativos Web rápidos e escalonáveis. Ele usa um modelo de E/S controlado por evento e sem bloqueio, tornando-o leve e eficiente. É uma ótima estrutura para aplicativos em tempo real que usam muitos dados e que são executados em dispositivos distribuídos. Aqui estão alguns exemplos do que você pode criar com o Node.js.

  • SPAs (aplicativos de página única) : são aplicativos Web que funcionam dentro de um navegador e não precisam recarregar uma página sempre que você usá-la para obter novos dados. Alguns exemplos de SPAs incluem aplicativos de rede social, aplicativos de mapa ou email, texto online ou ferramentas de desenho etc.
  • RTAs (aplicativos em tempo real) : são aplicativos Web que permitem aos usuários receber as informações assim que publicadas por um autor, em vez de exigir que o usuário (ou software) verifique uma fonte periodicamente em busca de atualizações. Alguns exemplos de RTAs incluem aplicativos de mensagens instantâneas ou salas de chat, jogos com vários jogadores online que podem ser reproduzidos no navegador, documentos de colaboração online, armazenamento da Comunidade, aplicativos de videoconferência etc.
  • Aplicativos de streaming de dados: são aplicativos (ou serviços) que enviam dados/conteúdo à medida que chegam (ou são criados) e ao mesmo tempo mantêm a conexão aberta para continuar baixando dados, conteúdo ou componentes adicionais, conforme necessário. Alguns exemplos incluem aplicativos de streaming de vídeo e áudio.
  • APIs REST: são as interfaces que fornecem dados para interação com o aplicativo Web de outra pessoa. Por exemplo, um serviço de API de Calendário pode fornecer datas e horas para um local de show que poderia ser usado pelo site de eventos locais de outra pessoa.
  • Aplicativos SSR (renderizados do lado do servidor) : esses aplicativos Web podem ser executados no cliente (no navegador/front-end) e no servidor (o back-end), permitindo que as páginas dinâmicas exibam (gerem HTML para) qualquer conteúdo conhecido e extraiam rapidamente conteúdo não conhecido quando disponível. Eles são frequentemente chamados de aplicativos "isomórficos" ou "universais". Os SSRs utilizam métodos SPA, de modo que não precisam ser recarregados toda vez que forem usados. No entanto, os SSRs oferecem alguns benefícios que podem ou não ser importantes para você, como fazer com que o conteúdo do seu site apareça nos resultados da pesquisa do Google e fornecer uma imagem de visualização quando os links para seu aplicativo são compartilhados em mídias sociais, como o Twitter ou o Facebook. A possível desvantagem é que ele exige um servidor Node.js em constante execução. A título de exemplo, um aplicativo de rede social com suporte a eventos que os usuários desejam que apareçam nas resultados da pesquisa e em mídias sociais pode se beneficiar de SSR, mas aplicativos de email podem se beneficiar mais de SPA. Você também pode executar aplicativos não SPA renderizados pelo servidor, como um blog do WordPress. Como podemos ver, conforme as coisas vão ficando complicadas, você precisa decidir o que é importante.
  • Ferramentas da linha de comando: permitem automatizar tarefas repetitivas e, em seguida, distribuir sua ferramenta pelo vasto ecossistema Node.js. Um exemplo de ferramenta de linha de comando é cURL, que representa a URL do cliente e é usada para baixar conteúdo de uma URL da internet. A cURL geralmente é usada para instalar itens como Node.js ou, em nosso caso, um gerenciador de versão do Node.js.
  • Programação de hardware: embora não seja tão conhecido quanto os aplicativos Web, o Node.js vem crescendo em popularidade para usos de IoT, como coletar dados de sensores, sinalizadores, transmissores, motores ou qualquer item que gere grandes quantidades de dados. O Node.js pode habilitar a coleta e análise de dados, a comunicação entre um dispositivo e um servidor e a execução de ações com base na análise. O NPM contém mais de 80 pacotes para controladores Arduino, Raspberry Pi, Intel IoT Edison, vários sensores e dispositivos Bluetooth.

Próximas etapas