O que é

Node.js é um ambiente de execução JavaScript assíncrono e orientado a eventos. Ele foi projetado para construir aplicações escaláveis e de alta performance, principalmente no lado do servidor (backend). Ele permite que você use JavaScript fora do navegador, no lado do servidor.

Principais Características

  1. V8 Engine: Node.js é construído sobre o motor V8 do Chrome, que compila JavaScript diretamente para código de máquina, oferecendo alta performance.
  2. Modelo Assíncrono e Orientado a Eventos: A arquitetura do Node.js é assíncrona, o que significa que ele não espera operações I/O (Input/Output) serem concluídas para continuar a execução. Isso resulta em aplicações mais rápidas e eficiente.
  3. NPM (Node Package Manager): Node.js vem com o NPM, um dos maiores repositórios de pacotes open source do mundo. Ele facilita o gerenciamento de dependências e a reutilização de código.
  4. Escalabilidade: Node.js é ideal para construir aplicações escaláveis, como servidores web e APIs, devido ao seu modelo de eventos não bloqueantes.

Funcionamentos

  1. Single Thread
  2. Non-Blocking I/O:
  3. Call Stack:
  4. Event Loop
  5. Event Queue:

Requisições HTTP

  1. Criando um Servidor HTTP

Para criar um servidor HTTP no NodeJS, você usa o módulo embutido http. Com ele, você pode configurar um servidor que escuta por requisições em uma porta específica.

import http from 'node:http'

const servidor = http.createServer((req, res) => {
	res.statusCode = 200;
	res.setHeader('Content-Type', 'text/plain');
	res.end('Hello World!');
});

const porta = 3000;
servidor.listen(porta, () => {
	console.log(`Servidor rodando em <http://localhost>:${porta}`);
})