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.