Node.js (Node) é uma plataforma de desenvolvimento de código aberto para executar código JavaScript do lado do servidor. Node é útil para desenvolver aplicações que requerem uma ligação persistente do browser ao servidor e é frequentemente usado para aplicações em tempo real como chat, feeds de notícias e notificações web push.
Node.js destina-se a correr num servidor HTTP dedicado e a empregar um único thread com um processo de cada vez. Os aplicativos Node.js são baseados em eventos e executados de forma assíncrona. O código construído na plataforma do Node não segue o modelo tradicional de receber, processar, enviar, esperar, receber. Em vez disso, o Node processa as solicitações de entrada em uma pilha de eventos constante e envia pequenas solicitações uma após a outra sem esperar por respostas.
Esta é uma mudança longe dos modelos mainstream que executam processos maiores e mais complexos e executam vários threads simultaneamente, com cada thread esperando por sua resposta apropriada antes de avançar.
Uma das maiores vantagens do Node.js, de acordo com seu criador Ryan Dahl, é que ele não bloqueia a entrada/saída (I/O). Alguns desenvolvedores são altamente críticos ao Node.js e apontam que se um único processo requer um número significativo de ciclos de CPU, a aplicação irá bloquear e que o bloqueio pode travar a aplicação. Proponentes do modelo Node.js afirmam que o tempo de processamento da CPU é menos preocupante devido ao alto número de pequenos processos que o código do Node é baseado em.
Veja também: PHP, Ruby
Continue reading about Node.js:
Node.js is cancer
Why everyone is talking about Node
Node.js contributes to increase focus on events processing
Nodejs.org
Where does Node.js stand?