DevPath · Aprenda a programar ESPTEN

Node.js: ambiente, módulos e async

Módulos e npm

Dividir o código em módulos

Uma aplicação real não cabe em um arquivo. O Node permite separar o código em módulos (arquivos) que exportam e importam funcionalidade. Existem dois sistemas que vão conviver por muito tempo.

CommonJS (o clássico do Node)

Usa require para importar e module.exports para exportar:

// matematica.js
function somar(a, b) { return a + b; }
module.exports = { somar };

// app.js
const { somar } = require("./matematica");
console.log(somar(2, 3)); // 5

ES Modules (o padrão moderno)

É a sintaxe padrão da linguagem, a mesma do navegador. Usa import / export:

// matematica.js
export function somar(a, b) { return a + b; }

// app.js
import { somar } from "./matematica.js";

Para usar ESM no Node coloca-se "type": "module" no package.json (ou usa-se a extensão .mjs). Diferenças-chave: require é síncrono e dinâmico (você pode chamá-lo dentro de um if); import é estático (resolve-se antes de executar) e permite otimizações.

package.json e npm

O package.json é a ficha do projeto: nome, versão, scripts e dependências. Com o npm (o gerenciador de pacotes do Node) você instala bibliotecas:

{
  "name": "meu-app",
  "type": "module",
  "scripts": { "start": "node app.js" },
  "dependencies": { "express": "^4.18.0" }
}

npm install express baixa o pacote para node_modules e o registra em dependencies. Depois você o importa pelo nome: import express from "express".

A biblioteca padrão

O Node traz módulos integrados (não precisa instalá-los):

Exemplos

Importar um módulo da biblioteca padrão (CommonJS)

const path = require("path");
console.log(path.join("pasta", "arquivo.txt")); // "pasta/arquivo.txt"
console.log(path.extname("foto.png"));           // ".png"
Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
← O que é Node.jsAssincronia no Node →