Node.js - Introdução

O que é Node.js?

Node.js é uma plataforma do lado do servidor construída no motor JavaScript do Google Chrome (motor V8). O Node.js foi desenvolvido por Ryan Dahl em 2009 e sua versão mais recente é a v0.10.36. A definição de Node.js conforme fornecida por sua documentação oficial é a seguinte -

Node.js é uma plataforma construída no tempo de execução JavaScript do Chrome para construir facilmente aplicativos de rede rápidos e escaláveis. O Node.js usa um modelo de E / S não bloqueante e orientado por eventos que o torna leve e eficiente, perfeito para aplicativos em tempo real com grande volume de dados executados em dispositivos distribuídos.

Node.js é um ambiente de tempo de execução de plataforma cruzada de código aberto para o desenvolvimento de aplicativos do lado do servidor e de rede. Os aplicativos Node.js são escritos em JavaScript e podem ser executados no tempo de execução do Node.js no OS X, Microsoft Windows e Linux.

Node.js também fornece uma rica biblioteca de vários módulos JavaScript que simplifica o desenvolvimento de aplicativos da web usando Node.js em grande medida.

Node.js = Runtime Environment + JavaScript Library

Recursos do Node.js

A seguir estão alguns dos recursos importantes que tornam o Node.js a primeira escolha dos arquitetos de software.

  • Asynchronous and Event Driven- Todas as APIs da biblioteca Node.js são assíncronas, ou seja, sem bloqueio. Significa essencialmente que um servidor baseado em Node.js nunca espera que uma API retorne dados. O servidor passa para a próxima API após chamá-la e um mecanismo de notificação de Eventos de Node.js ajuda o servidor a obter uma resposta da chamada de API anterior.

  • Very Fast - Sendo construída no motor V8 JavaScript do Google Chrome, a biblioteca Node.js é muito rápida na execução do código.

  • Single Threaded but Highly Scalable- Node.js usa um único modelo de thread com loop de eventos. O mecanismo de eventos ajuda o servidor a responder de forma não bloqueadora e torna o servidor altamente escalonável, ao contrário dos servidores tradicionais que criam threads limitados para lidar com as solicitações. O Node.js usa um único programa encadeado e o mesmo programa pode fornecer serviço a um número muito maior de solicitações do que servidores tradicionais como o Apache HTTP Server.

  • No Buffering- Os aplicativos Node.js nunca armazenam nenhum dado em buffer. Esses aplicativos simplesmente geram os dados em blocos.

  • License- O Node.js é lançado sob a licença do MIT .

Quem usa Node.js?

A seguir está o link no github wiki contendo uma lista completa de projetos, aplicativos e empresas que estão usando Node.js. Esta lista inclui eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo! E Yammer, para citar alguns.

Conceitos

O diagrama a seguir descreve algumas partes importantes do Node.js que discutiremos em detalhes nos capítulos subsequentes.

Onde usar o Node.js?

A seguir estão as áreas em que o Node.js está provando ser um parceiro de tecnologia perfeito.

  • Aplicativos ligados a I / O
  • Aplicativos de streaming de dados
  • Aplicativos em tempo real com uso intensivo de dados (DIRT)
  • Aplicativos baseados em APIs JSON
  • Aplicativos de página única

Onde não usar o Node.js?

Não é aconselhável usar Node.js para aplicativos com uso intensivo de CPU.