O que é?

O nosso querido e sagrado Node.JS é uma plataforma que dá asas ao nosso Javascript, podendo este ser executado e interpretado no lado do servidor.

node_v8-1


V8

Este motor é como se fosse uma máquina virtual para Javascript feita em C++. Como na imagem acima, ele interpreta JS para um nível mais baixo de programação. Você pode construir ataques nucleares com Node.JS mas este é um tutorial para o futuro.


Libuv | Single Thread

gallerychar_1900x900_mos_52e05e3fe24a61-04593858

Como se já não fosse lindo trabalhar com Javascript no server-side, o Node.JS possui esta vantagem de gerenciar tudo com uma thread só. Na imagem acima você vê o super-homem, certo? Errado. É o Node.JS sobrevoando sua fucking cidade.

Tudo o que rola no Node é feito através do famigerado EVENT LOOP, uma fila infinita de coisas a serem executadas, inclusive nossas requisições HTTP. Este EVENT LOOP faz parte da Libuv que você viu na imagem lá de cima, mongolão. Não conseguiu ver? Simples, é porque o thread pool e o event loop agora são todos parte da Libuv. Tá tudo numa coisa só agora, seu filhote de Dollynho.

IMPORTANTE: o Node é assíncrono no processamento destes eventos. Isso significa que enquanto algo é processado, não quer dizer que seu Node está parado esperando aquilo terminar de processar e dar uma resposta. Isso se dá devido aos callbacks. Todo retorno de processo assíncrono é na verdade OUTRA FUNÇÃO.

Por enquanto é isso. Logo volto. :*