Skip to content

Diferenças entre Node.js e o Navegador

Tanto o navegador quanto o Node.js usam JavaScript como linguagem de programação. Criar aplicativos que rodam no navegador é completamente diferente de criar um aplicativo Node.js. Apesar de ser sempre JavaScript, existem algumas diferenças-chave que tornam a experiência radicalmente diferente.

Do ponto de vista de um desenvolvedor frontend que usa extensivamente JavaScript, os aplicativos Node.js trazem uma grande vantagem: o conforto de programar tudo - frontend e backend - em uma única linguagem.

Você tem uma grande oportunidade porque sabemos o quão difícil é aprender completamente e profundamente uma linguagem de programação, e usando a mesma linguagem para realizar todo o seu trabalho na web - tanto no cliente quanto no servidor, você está em uma posição única de vantagem.

TIP

O que muda é o ecossistema.

No navegador, na maioria das vezes o que você está fazendo é interagir com o DOM ou outras APIs da Plataforma Web, como Cookies. Essas não existem em Node.js, é claro. Você não tem o document, window e todos os outros objetos fornecidos pelo navegador.

E no navegador, não temos todas as APIs interessantes que o Node.js fornece através de seus módulos, como a funcionalidade de acesso ao sistema de arquivos.

Outra grande diferença é que no Node.js você controla o ambiente. A menos que você esteja criando um aplicativo de código aberto que qualquer pessoa possa implantar em qualquer lugar, você sabe em qual versão do Node.js executará o aplicativo. Comparado ao ambiente do navegador, onde você não tem o luxo de escolher qual navegador seus visitantes usarão, isso é muito conveniente.

Isso significa que você pode escrever todo o JavaScript ES2015+ moderno que sua versão do Node.js suporta. Como o JavaScript se move tão rápido, mas os navegadores podem ser um pouco lentos para atualizar, às vezes na web você fica preso usando versões mais antigas de JavaScript / ECMAScript. Você pode usar o Babel para transformar seu código para ser compatível com ES5 antes de enviá-lo para o navegador, mas no Node.js, você não precisará disso.

Outra diferença é que o Node.js suporta os sistemas de módulos CommonJS e ES (desde o Node.js v12), enquanto no navegador, estamos começando a ver o padrão ES Modules sendo implementado.

Na prática, isso significa que você pode usar require() e import no Node.js, enquanto está limitado a import no navegador.