Iniciando no Node.Js

Olá pessoal, nesse artigo eu venho apresentar os conceitos iniciais do Node. Afinal, o que é esse famoso Node que tanto se fala nos últimos tempos?

Antes de mais nada, se fossemos resumir o Node, poderíamos dizer que ele nos permite utilizar o Javascript no back-end,(o back-end de uma forma resumida, é a camada da nossa aplicação onde fica toda regra de negócio, onde acessamos o banco de dados, consumimos serviços de terceiros, como formas de pagamento, sistemas de bancos, micros serviços, tudo isso ocorre lá no back-end. Sendo assim, temos a possibilidade de desenvolver a nossa aplicação, tanto no front-end, como no back-end, utilizando apenas uma linguagem. O Javascript.

Outro ponto importante de ressaltar é que mesmo que seja utilizado a mesma linguagem (Javascript) no front-end e no back-end, a forma que o Node lida com os eventos do usuário, é diferente do Javascript comum. Ao invés de utilizar “Clicks” em botoẽs, passar o mouse por cima de alguma coisa e etc.

A única forma que o Node pode ouvir eventos do usuário, são através das Rotas da nossa aplicação. Quando o usuário acessa alguma rota da nossa aplicação, que conseguimos disparar um código Node para que ele seja executado.

O Node diferente do que muitos pensam, não é uma linguagem; O Node utiliza a linguagem Javascript e podemos chama-lo de uma plataforma para desenvolvimento back-end. O Node foi construído em cima da V8. A V8 é a maquina que roda por trás do Chorme. (Link abaixo para uma pesquisa melhor).

https://dev.to/khaosdoctor/node-js-por-baixo-dos-panos-4-vamos-falar-do-v8-4pai

O Node utilizou a V8 para conseguir rodar o Javascript no back-end.

Durante desenvolvimento de uma aplicação no Node, é comum a instalação de biblioteca de terceiros para determinada função. Um exemplo, imagine que nossa aplicação precise de uma integração com o PagSeguro, PayPal, enviar algum E-mail, ou algo assim. Geralmente instalamos uma biblioteca que irá facilitar a implementação dessa função. Nesse caso utilizamos o NPM (Package Manager) que é um gerenciador de pacote que permite a instalação dessas bibliotecas.

O motivo pelo qual essa plataforma ficou tão forte no mercado tem muito a ver com as suas características.

Algumas delas são, a sua arquitetura. A arquitetura do Node se chama “Event-loop”, onde ela é baseada em eventos. O ponto central dessa arquitetura são as Call Stack; Ela é uma pilha de eventos, podemos definir eventos como “uma função que foi disparada pelo nosso código”. E o Node processa através um loop eterno, rodando na nossa aplicação sem parar, o tempo todo procurando se tem alguma nossa função que foi disparada pela nossa aplicação nessa Call Stack e então ele executa em formato de pilha.

Outra característica da arquitetura do Node é o single-thread, ou seja, ele executa em apenas um thread do nosso processador. Se tivermos um processador de 4 núcleos, o Node não será processado ao mesmo tempo nos 4 núcleos, ele ficará alocado em apenas um núcleo, porém, como o Node utiliza várias bibliotecas do C++ por trás, uma delas é a Libuv, ele nos permite utilizar multi threads do processamento para processar de uma forma mais rápida os eventos da Call Stack.

Além disso, o Node também possui a arquitetura Non-blocking I/O. Traduzindo para o português, Input e Output não bloqueante, significa que quando é feito uma requisição em sua aplicação, uma função que retorna uma lista de usuário não é necessário que seja retornado toda a lista de uma vez,é possível que retorne em partes. O motivo é, assim que retorna a listagem, não bloquea o resultado e a conexão com o back-end não é perdida.

Para finalizar, durante o desenvolvimento no Node é também utilizado alguns Frameworks. Um dos mais famosos são o Express. Futuramente irei fazer um novo artigo falando sobre o Express.

Não entrei na parte prática, com exemplos de códigos e etc. Se você é iniciante e nunca mexeu com o Node, talvez alguns conceitos não estejam tão claros. Mas esse artigo pode ser excelente no seu pontapé inicial no Node.

Quer receber mais conteúdos como esse gratuitamente?

Cadastre-se para receber os nossos conteúdos por e-mail.

Email registrado com sucesso
Opa! E-mail inválido, verifique se o e-mail está correto.