Pular para o conteúdo principal

Node.js - Significado e Funcionalidade


O Que é Node.js?

O Node.js é um ambiente de execução JavaScript, linguagem padrão de manipulação de páginas HTML, criada em 1995. 

Anteriormente, foi usada para o desenvolvimento client-side, mas com a evolução da Internet, também passou a ser aplicada como server-side.

O ambiente do Node.js é utilizado por gigantes do mercado de tecnologia, como Netflix e LinkedIn

Sua escolha é embasada em uma característica muito peculiar, sua alta escalabilidade.

Uma vez que a execução single-thread permite criar um Event Loop com requisições que não demandam output.

Essa arquitetura, somada a outras vantagens, como o baixo custo e a flexibilidade, permitem que o Node.js embase, principalmente, aplicações multidirecionais com comunicação e troca de dados em tempo real. 

Node.js é um ambiente de execução na porta 80 padrão, baseado na pilha da web aberta (HTMLCSS e JavaScript). Ou seja, é uma plataforma em que é possível criar aplicações JavaScript sem depender de um browser para a execução.

Sua execução em single-thread não exige resposta a cada requisição. 

Assim, a dinâmica de entrada e saída (I/O) fica diferente, com inputs não bloqueadores.

A plataforma preenche uma necessidade específica, criação de aplicativos de rede altamente rápidos, escaláveis e com grande volume de conexões simultâneas. 

Apesar disso, não é indicada para operações robustas que demandem resposta e muitos recursos computacionais, como memória RAM.

Funcionalidade:

Em um servidor tradicional multi-thread, cada solicitação criada gera um novo encadeamento, com operações de I/O (Input/Output) que ocupam a memória RAM do sistema até que ela atinja seu limite máximo disponível.

Já o Node.js opera em um único encadeamento (single-threaded), por meio do modelo I/I (Input/Input) sem bloqueio. 

Isso permite que o sistema suporte dezenas de milhares de conexões simultâneas durante o Event Loop, ou loop de eventos.

Dessa forma, o loop de eventos, chamado assim justamente porque cada solicitação é classificada como um evento único, executa todas as requisições (inclusive as concorrentes) na pilha de eventos de forma assíncrona.

Aplicações:

Chat: O bate-papo é uma aplicação multidirecional, ou seja, gera um fluxo de informações entre dois ou mais usuários, em tempo real. 

A aplicação por meio do Node.js permite que a comunicação seja estabelecida na porta 80 padrão.

O Node.js permite que a aplicação seja leve, suporte o tráfego e o uso intenso de dados sem demandar alto volume de processamento. 

Logo, a operação funciona sob os mesmos princípios básicos do Node.js.

Reage a eventos, manipula as conexões de forma simultânea e mantém a fluidez na experiência do usuário.

API e banco de dados: Bancos de dados são baseados em JSON (JavaScript Object Notation) e uma API criada no Node.js funciona sem a incompatibilidade de impedância e a necessidade de conversão dos dados,  portanto pertime que os dados sejam enviados para o front-end sem demandar várias conexões que uniformizam as informações e atrasam a execução da solicitação.

Inputs em fila: O recebimento de uma grande quantidade de dados simultâneos pode criar gargalos no seu banco de dados devido à alta demanda por capacidade de resposta.

Para suportar esse grande volume de solicitações e não criar operações de bloqueio, é preciso usar um modelo que não demande resposta. 

Além de funcionar com a single-threaded sem bloqueio, o Node.js agiliza e facilita as conexões criadas para a visualização de informações, uma vez que opera em JSON.

Transmissão e visualização de dados: Nas plataformas da web mais tradicionais, as solicitações e respostas HTTP são tratadas como eventos isolados, como fluxos de dados. 

Por meio do Node.js é possível processar arquivos durante o carregamento, pois eles entram em uma fila que permite seu processamento simultâneo.

Proxy: O Node.js é facilmente empregado como um proxy do lado do servidor, pois suporta uma grande quantidade de conexões simultâneas sem bloqueio.

Também serve para coletar dados de vários pontos de origem, um aplicativo que extrai informações de diferentes fontes, como imagens e vídeos, para fazer a compilação depois.

Node.js pode transformar uma infraestrutura comum em proxy de base local.

Monitoramento de usuários: Um uso muito comum do Node.js acontece por meio do rastreamento dos visitantes de um site e a visualização de suas interações em tempo real.

Isso permite que proprietários de páginas coletem informações de acesso simultaneamente à ocorrência das ações.

Monitoramento de sistemas: O Node.js permite monitorar o uso de sistemas. 

Um provedor de SaaS pode oferecer aos seus usuários a comodidade de acompanhar como os serviços são executados no software, similar ao que acontece na página de status do GitHub.

Com o loop de eventos do Node.js, é possível criar um dashboard que verifica os status dos serviços de maneira assíncrona e envia dados aos usuários em tempo real, todos executados na pilha da web aberta suportada pela tecnologia.

Exemplo de "Hello, World!" em Node.js:


var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'})

  res.writeHead("Hello, World!");

  res.end();

}).listen(8080);


Se gostou do conteúdo, considere pagar-me um café:

Curso de HTML Que eu recomendo:

Curso de criação de sites profissionais:

Curso  de HTML,  CSS e JavaScript:

Canal no Youtube:

Comentários

Mais vistas

Autocode - Significado e Funcionalidade

O Que é Autocode? O Autocode foi uma das primeiras linguagens de programação de computador, desenvolvida em 1952 por Alick Glennie para o computador Mark 1 na Universidade

HTML - Significado e Funcionalidade

O que é HTML? HTML é a sigla em inglês para Hypertext Markup Language, que traduzimos para o português como linguagem de marcação de hipertexto. O HTML é parte fundamental das

Semáforo - HTML, CSS e JavaScript - Tutorial

Semáforo Funcional: Aprenda a criar um semáforo funcional com este tutorial detalhado. Descubra como implementar a lógica de controle de um semáforo usando HTML, CSS e JavaScript.