Há duas coisas importantes que tornam o Node.js diferente das estruturas existentes do lado do servidor, eventos assíncronos e o uso de JavaScript como linguagem de programação.
Eventos Assíncronos
Enquanto a maioria das estruturas existentes do lado do servidor usa uma arquitetura síncrona, o Node.js usa uma arquitetura assíncrona , com a qual o JavaScript pode lidar bem. Isso significa que o servidor reage a eventos e envia eventos (mensagens) para, por exemplo, o banco de dados. Esse estilo de programação é muito diferente de um estilo síncrono e pode ser difícil de usar com outros idiomas. O Node.js emprega um estilo assíncrono com E / S assíncronas e pode ser bem dimensionado.
Veja também Arquitetura Orientada a Eventos
Javascript
JavaScript é a linguagem de programação que os aplicativos da web estão usando no cliente. Usar o mesmo idioma no lado do servidor significa que o desenvolvedor pode aplicar seu conhecimento de JavaScript no cliente e no servidor e usar as mesmas funções necessárias.
Eu recomendaria a apresentação Introdução ao Node.js. com Ryan Dahl, onde ele explica a arquitetura orientada a eventos do Node.j em mais detalhes.