Apostilas em PDF –  Node.js

Baixe o material de estudo



baixar curso online

Olá, querida(o) estudante! Neste artigo, vamos estudar o Node.js, uma das plataformas mais importantes do desenvolvimento moderno e amplamente cobrada em concursos de TI. Criado sobre o motor V8, o mesmo utilizado pelo Google Chrome, o Node.js permite executar JavaScript fora do navegador, abrindo espaço para aplicações de rede rápidas, escaláveis e com alto desempenho — especialmente no back-end. Ao longo deste texto, vamos compreender os principais conceitos que estruturam o Node.js, seu modelo de concorrência e seu funcionamento interno. Depois, você verá como esses conhecimentos aparecem diretamente nas provas, por meio de questões oficiais comentadas.

O que é Node.js?

O Node.js é um ambiente de execução de código JavaScript no lado do servidor. Ele não é uma linguagem nem um framework, mas uma plataforma construída sobre o V8 JavaScript Engine, responsável por transformar código JavaScript em instruções de máquina de maneira extremamente rápida. O principal propósito do Node.js é oferecer um ambiente leve, eficiente e adequado para aplicações que realizam operações de I/O (entrada/saída) intensivas, como servidores web, APIs REST, serviços em tempo real e sistemas distribuídos. Por essa razão, o Node.js tornou-se uma tecnologia essencial para empresas que lidam com alto volume de requisições, como Netflix, PayPal e Uber.

Arquitetura orientada a eventos

Um dos pilares centrais do Node.js é sua arquitetura orientada a eventos (event-driven architecture). Isso significa que, em vez de criar múltiplas threads para atender cada requisição, o Node trabalha com um fluxo baseado em eventos e callbacks. Sempre que alguma operação é solicitada — como ler um arquivo, receber uma requisição HTTP ou consultar um banco de dados — o Node registra esse evento na fila e continua executando o restante do código. Quando a operação termina, o evento correspondente chama sua função de retorno. Essa abordagem reduz significativamente o custo computacional, permitindo um desempenho superior em aplicações que lidam com muitas conexões simultâneas.

Para visualizar isso, considere a criação de um servidor simples:

const http = require(“http”);

http.createServer((req, res) => {

  res.end(“Servidor Node.js funcionando!”);

}).listen(3000);

Esse código cria um servidor capaz de responder centenas de conexões por segundo sem a necessidade de múltiplas threads, pois todo o fluxo é controlado por eventos.

I/O não bloqueante

Outro aspecto fundamental do Node.js é seu modelo de I/O não bloqueante (non-blocking I/O). Em outras plataformas, quando uma operação de entrada/saída é executada — como ler um arquivo ou realizar uma consulta ao banco — a thread responsável pela execução fica parada até que a operação termine. No Node.js, isso não acontece: enquanto o sistema realiza a operação de I/O internamente, o fluxo principal continua executando outras tarefas. Isso permite um uso mais eficiente dos recursos, especialmente quando o sistema precisa lidar com grande número de conexões simultâneas ou operações assíncronas.

Veja um exemplo simples:

const fs = require(“fs”);

fs.readFile(“arquivo.txt”, “utf8”, (err, dados) => {

  console.log(“Leitura concluída:”, dados);

});

console.log(“O programa continua executando enquanto o arquivo é lido…”);

A mensagem final será exibida antes do resultado da leitura do arquivo, demonstrando claramente o comportamento não bloqueante.

Single-thread + libuv: como o Node consegue ser escalável

Embora muitas pessoas imaginem que o Node.js não é escalável por ser single-thread, isso não é verdade. O fluxo principal é realmente executado em uma única thread, mas várias operações são repassadas à biblioteca libuv, que implementa um thread pool interno para lidar com tarefas pesadas. Somado ao event loop, esse modelo oferece desempenho elevado, com baixa latência, sem overhead de criação de múltiplas threads de aplicação. Esse é um dos motivos pelos quais o Node é tão utilizado em serviços de streaming e sistemas de tempo real.

npm: o ecossistema de pacotes

Outro componente essencial do Node.js é o npm (Node Package Manager), o gerenciador de pacotes padrão da plataforma. O npm centraliza milhares de bibliotecas e módulos que podem ser instalados e reutilizados em projetos Node, permitindo que desenvolvedores aproveitem soluções prontas e acelerem o desenvolvimento. Bibliotecas como Express, Socket.io, Mongoose e Axios são exemplos amplamente utilizados no ecossistema. É por isso que muitas questões de prova afirmam que o npm é parte integrante do Node.js — e estão corretas.

Node.js e a criação de servidores escaláveis

Por unir a arquitetura orientada a eventos, o modelo de I/O não bloqueante e o poder do motor V8, o Node.js se tornou uma das principais escolhas para construir servidores escaláveis. Um único processo Node é capaz de atender múltiplas conexões sem bloquear a execução e sem criar threads extras. Além disso, o Node oferece módulos internos específicos para redes, como http, net e dns, além de permitir a criação de aplicações com frameworks populares como Express.js.

Assincronismo: callbacks, Promises e async/await

O Node.js foi projetado desde o início para lidar com assincronismo. Suas primeiras versões utilizavam extensivamente callbacks, mas o desenvolvimento da linguagem incorporou Promises e posteriormente os métodos async/await, facilitando a escrita de código assíncrono mais legível. Hoje, Node.js utiliza todos esses recursos, e é comum encontrar questões de concurso explorando a diferença entre modelos síncronos e assíncronos no ambiente Node.

Segurança e cuidados no desenvolvimento

Embora poderoso, o Node.js exige boas práticas para garantir segurança e desempenho. Como a aplicação opera frequentemente com módulos externos instalados via npm, é fundamental manter dependências atualizadas, verificar vulnerabilidades e usar ferramentas de análise como npm audit. Além disso, é desejável implementar controles adequados de acesso, lidar com sanitização de entradas e seguir boas práticas na construção de APIs e servidores.

Agora, vamos ver como esses assuntos são cobrados nos concursos!

1) Instituto Consulplan – 2024 – PRODABEL – Analista de TI – TIC

Node.js é uma plataforma de execução de código aberto para JavaScript que opera no lado do servidor, permitindo código JavaScript ser executado fora de um navegador. Considerando as características principais do Node.js, marque V para as afirmativas verdadeiras e F para as falsas.

( ) Baseado na arquitetura orientada a eventos.
( ) Opera em um modelo de I/O não bloqueante.
( ) O npm é o gerenciador de pacotes padrão do Node.js.

A sequência está correta em

  1. F, F, F.
  2. F, V, F.
  3. V, F, V.
  4. V, V, V.

Gabarito: Letra D

Comentário: As três afirmativas estão corretas.

A primeira é verdadeira porque o Node.js utiliza uma arquitetura orientada a eventos, na qual o event loop coordena a execução das operações.

A segunda também é verdadeira, pois o Node funciona com I/O não bloqueante, permitindo que o fluxo continue executando enquanto operações de entrada/saída acontecem em segundo plano.

A terceira está correta: o npm é, de fato, o gerenciador de pacotes oficial e padrão do Node.js, instalado automaticamente junto com a plataforma.

2) COMPERVE – UFRN – 2024 – UFERSA – Analista de TI

Sobre o Node.js, analise as afirmativas abaixo:

I – É um ambiente de execução assíncrono.
II – Utiliza o V8 JavaScript engine.
III – É um ambiente de execução de código JavaScript do lado cliente.
IV – Utiliza o NPM para gerenciamento de memória.

Assinale a alternativa correta:

  1. I e II.
  2. I e IV.
  3. II e III.
  4. III e IV.

Gabarito: Letra A

Comentário:

A afirmativa I está correta porque o Node.js é um ambiente de execução orientado ao assincronismo. Operações de entrada e saída não bloqueiam o fluxo principal, permitindo maior escalabilidade.

A afirmativa II está correta: o Node utiliza o V8, motor de JavaScript desenvolvido pelo Google e conhecido pela alta performance.

A afirmativa III é incorreta, pois o Node.js opera no lado do servidor. JavaScript no lado cliente é executado no navegador, não no Node.

A afirmativa IV é incorreta porque o npm não gerencia memória; ele é o gerenciador de pacotes da plataforma.

Conclusão

O Node.js representa um marco importante no desenvolvimento web moderno. Ao unir uma execução rápida baseada no V8, um modelo assíncrono de I/O, uma arquitetura orientada a eventos e o poderoso ecossistema do npm, ele possibilita criar aplicações eficientes, escaláveis e de alto desempenho. Por isso, compreender seus fundamentos é essencial tanto para desenvolvedores quanto para concurseiros que buscam cargos na área de Tecnologia da Informação. Os conceitos centrais do Node aparecem recorrentemente nas provas — como event loop, escalabilidade, assincronismo, V8 e npm — e agora você está preparado para enfrentá-los com segurança.

Referências

  • MDN Web Docs. 
  • Flanagan, D. JavaScript: The Definitive Guide. O’Reilly, 2020.
  • Tilkov, S.; Vinoski, S. Node.js: Evented I/O for V8 JavaScript. IEEE Internet Computing, 2010.
  • Harter, Z.; Cantelon, M.; et al. Node.js in Action. Manning Publications, 2017.

Fonte: Gran Cursos Online

Download disponível –  Node.js



Baixar video aula

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Sair da versão mobile