{"id":51985,"date":"2026-10-20T04:32:23","date_gmt":"2026-10-20T07:32:23","guid":{"rendered":"\/pt\/tutoriais\/como-usar-node-js"},"modified":"2026-10-20T04:32:23","modified_gmt":"2026-10-20T07:32:23","slug":"como-usar-node-js","status":"publish","type":"post","link":"\/pt\/tutoriais\/como-usar-node-js\/","title":{"rendered":"Tutorial de Node.js: como usar o Node.js ap\u00f3s a instala\u00e7\u00e3o"},"content":{"rendered":"<p class=\"wp-block-paragraph\">O Node.js permite executar JavaScript no lado do servidor. Com ele, &eacute; poss&iacute;vel rodar scripts, processar requisi&ccedil;&otilde;es e desenvolver a l&oacute;gica de back-end diretamente pelo terminal.<\/p><p class=\"wp-block-paragraph\">Depois de instalar o Node.js no ambiente escolhido, seja no computador, em um servidor virtual privado (VPS) ou em um servi&ccedil;o de hospedagem gerenciada, voc&ecirc; j&aacute; pode executar scripts, criar servidores e gerenciar pacotes.<\/p><p class=\"wp-block-paragraph\">Neste tutorial, voc&ecirc; vai aprender a:<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li>Escrever e executar seu primeiro script em Node.js.<\/li>\n\n\n\n<li>Ler arquivos usando m&oacute;dulos nativos, como o <strong>fs<\/strong>.<\/li>\n\n\n\n<li>Criar um servidor HTTP b&aacute;sico do zero.<\/li>\n\n\n\n<li>Instalar e usar pacotes de terceiros com o <strong>npm<\/strong>.<\/li>\n\n\n\n<li>Entender como o Node.js executa c&oacute;digo ass&iacute;ncrono.<\/li>\n\n\n\n<li>Escolher o pr&oacute;ximo projeto para desenvolver, como uma API REST ou uma aplica&ccedil;&atilde;o full-stack.<\/li>\n<\/ol><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-o-que-e-node-js\">O que &eacute; Node.js<\/h2><p class=\"wp-block-paragraph\">O Node.js &eacute; um ambiente de execu&ccedil;&atilde;o de JavaScript gratuito, de c&oacute;digo aberto e multiplataforma que permite executar essa linguagem fora do navegador. Ele usa o mecanismo V8 do Google para compilar o c&oacute;digo diretamente em linguagem de m&aacute;quina.<\/p><p class=\"wp-block-paragraph\">Antes do lan&ccedil;amento do <a data-click-id=\"hgr-post-content-link-node-js\" href=\"\/pt\/tutoriais\/o-que-e-node-js\/\">Node.js<\/a>, em 2009, o JavaScript era executado apenas nos navegadores, onde cuidava de tarefas como responder a cliques em bot&otilde;es e atualizar p&aacute;ginas.<\/p><p class=\"wp-block-paragraph\">O Node.js mudou esse cen&aacute;rio ao levar o JavaScript para o lado do servidor, permitindo ler arquivos, conectar-se a bancos de dados e desenvolver a l&oacute;gica de back-end.<\/p><p class=\"wp-block-paragraph\">Hoje, os desenvolvedores usam o Node.js para criar APIs REST, aplica&ccedil;&otilde;es em tempo real, ferramentas de linha de comando e servi&ccedil;os de rede escal&aacute;veis. Sua arquitetura permite lidar com v&aacute;rias conex&otilde;es simult&acirc;neas de forma eficiente, sem precisar criar uma thread separada para cada uma.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-executar-aplicacoes-node-js\">Como executar aplica&ccedil;&otilde;es Node.js<\/h2><p class=\"wp-block-paragraph\">Existem tr&ecirc;s ambientes principais para executar aplica&ccedil;&otilde;es Node.js: no pr&oacute;prio computador, em um servidor remoto, como um VPS, ou em uma plataforma de hospedagem gerenciada. Cada op&ccedil;&atilde;o atende a diferentes necessidades durante o desenvolvimento e a implanta&ccedil;&atilde;o de uma aplica&ccedil;&atilde;o.<\/p><h3 class=\"wp-block-heading h-t-title-3\">Como executar o Node.js localmente para desenvolvimento<\/h3><p class=\"wp-block-paragraph\">Executar o Node.js no pr&oacute;prio computador &eacute; a op&ccedil;&atilde;o mais comum para desenvolver e testar aplica&ccedil;&otilde;es. Para come&ccedil;ar, bastam alguns minutos:<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li>Baixe a vers&atilde;o com suporte de longo prazo (LTS) no <a data-click-id=\"hgr-post-content-link-site-oficial-do-node-js\" href=\"https:\/\/nodejs.org\/pt-br\/download\" target=\"_blank\" rel=\"noopener\">site oficial do Node.js<\/a>.<\/li>\n<\/ol><div class=\"wp-block-image wp-block-image aligncenter size-large\"><figure data-wp-context='{\"imageId\":\"6ad7624b9111d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ad7624b9111d\" class=\"is-resized wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058512907-0-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"P&aacute;gina de download do Node.js mostrando um instalador compat&iacute;vel com macOS\" class=\"wp-image-59860\" style=\"width:840px;height:auto\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"1\" class=\"wp-block-list\">\n<li>Instale o Node.js usando o pacote correspondente ao seu sistema operacional.<\/li>\n\n\n\n<li>Abra o terminal e execute <strong>node -v<\/strong> para verificar a instala&ccedil;&atilde;o. Se o comando retornar um n&uacute;mero de vers&atilde;o, o Node.js est&aacute; pronto para uso.<\/li>\n<\/ol><h3 class=\"wp-block-heading h-t-title-3\">Como executar o Node.js no Ubuntu<\/h3><p class=\"wp-block-paragraph\">Um VPS oferece um ambiente de servidor remoto para implantar e executar aplica&ccedil;&otilde;es Node.js em produ&ccedil;&atilde;o. Voc&ecirc; pode acess&aacute;-lo via SSH pelo terminal do seu computador.<\/p><p class=\"wp-block-paragraph\">Confira as etapas gerais para <a data-click-id=\"hgr-post-content-link-instalar-o-node-js-no-ubuntu\" href=\"\/pt\/tutoriais\/instalar-node-js-ubuntu\/\">instalar o Node.js no Ubuntu<\/a>:<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li>Conecte-se ao VPS via SSH.<\/li>\n\n\n\n<li>Instale o Node.js usando um gerenciador de pacotes ou de vers&otilde;es, como o NVM.<\/li>\n\n\n\n<li>Execute a aplica&ccedil;&atilde;o com o comando <strong>node<\/strong>.<\/li>\n<\/ol><h3 class=\"wp-block-heading h-t-title-3\">Como executar o Node.js com hospedagem gerenciada<\/h3><p class=\"wp-block-paragraph\">Com a hospedagem gerenciada, voc&ecirc; n&atilde;o precisa se preocupar com a configura&ccedil;&atilde;o do servidor Node.js. O provedor de hospedagem cuida do ambiente de execu&ccedil;&atilde;o, das depend&ecirc;ncias e do processo de implanta&ccedil;&atilde;o da aplica&ccedil;&atilde;o.<\/p><p class=\"wp-block-paragraph\">Por exemplo, a <a data-click-id=\"hgr-post-content-link-hospedagem-gerenciada-de-node-js-da-hostinger\" href=\"\/pt\/hospedagem-de-aplicacoes-web\">hospedagem gerenciada de Node.js da Hostinger<\/a> cuida das compila&ccedil;&otilde;es com <strong>npm<\/strong>, do gerenciamento das vari&aacute;veis de ambiente e do monitoramento autom&aacute;tico de vulnerabilidades.<\/p><p class=\"wp-block-paragraph\">O servi&ccedil;o tamb&eacute;m oferece suporte a outros frameworks JavaScript, como React, Vue.js, Angular, Next.js, Express.js e NestJS. Assim, basta configurar o ambiente uma vez para executar tudo no mesmo lugar.<\/p><p class=\"wp-block-paragraph\">Para implantar um site Node.js na Hostinger, siga estas etapas:<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li>Contrate um <strong>Plano Business<\/strong> ou <strong>Cloud Startup<\/strong>.<\/li>\n\n\n\n<li>No painel da Hostinger, acesse <strong>Sites &rarr; Adicionar site &rarr; Aplica&ccedil;&atilde;o web em Node.js<\/strong>.<\/li>\n\n\n\n<li>Conecte um reposit&oacute;rio do GitHub ou envie um arquivo compactado com o projeto.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058512913-1-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"hPanel da Hostinger mostrando as op&ccedil;&otilde;es para implantar uma aplica&ccedil;&atilde;o web Node.js: importar um reposit&oacute;rio Git ou enviar arquivos compactados\" class=\"wp-image-59857\" style=\"width:840px;height:auto\"><\/figure><\/div><ol start=\"4\" class=\"wp-block-list\">\n<li>Confirme as configura&ccedil;&otilde;es de build detectadas automaticamente para o framework utilizado.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058515919-2-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"hPanel da Hostinger mostrando as configura&ccedil;&otilde;es de build detectadas automaticamente para a aplica&ccedil;&atilde;o web Node.js\" class=\"wp-image-59859\" style=\"width:840px;height:auto\"><\/figure><\/div><ol start=\"5\" class=\"wp-block-list\">\n<li>Clique em <strong>Deploy<\/strong> para compilar e colocar a aplica&ccedil;&atilde;o Node.js no ar.<\/li>\n<\/ol><figure class=\"wp-block-image size-large\"><a data-click-id=\"hgr-post-content-link-pt-hospedagem-barata\" aria-label=\"Hospedagem barata\" href=\"\/pt\/hospedagem-barata\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-32927\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-Web-hosting_in-text-banner.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-criar-seu-primeiro-script-em-node-js\">Como criar seu primeiro script em Node.js<\/h2><p class=\"wp-block-paragraph\">Depois de instalar o Node.js, o primeiro passo para coloc&aacute;-lo em pr&aacute;tica &eacute; escrever um script. Basta criar um arquivo com uma &uacute;nica linha de c&oacute;digo para execut&aacute;-lo.<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li>Abra o terminal do computador e crie um arquivo com o <a data-click-id=\"hgr-post-content-link-editor-de-texto-nano\" href=\"\/pt\/tutoriais\/como-instalar-editor-de-texto-nano\/\">editor de texto <strong>nano<\/strong><\/a>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">nano hello.js<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Digite a seguinte linha no editor:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">console.log('Hello, World!');<\/pre><ol start=\"3\" class=\"wp-block-list\">\n<li>Para salvar o arquivo e sair do <strong>nano<\/strong>, pressione <strong>Ctrl + X &rarr; Ctrl + Y &rarr; Enter<\/strong>.<\/li>\n\n\n\n<li>Execute o script:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">node hello.js<\/pre><p class=\"wp-block-paragraph\">O terminal dever&aacute; mostrar o seguinte resultado:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058518925-3-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal mostrando a sa&iacute;da do comando node hello.js\" class=\"wp-image-59858\" style=\"width:840px;height:auto\"><\/figure><\/div><p class=\"wp-block-paragraph\">A fun&ccedil;&atilde;o <strong>console.log()<\/strong> exibe texto no terminal. Talvez voc&ecirc; j&aacute; a tenha usado nas ferramentas de desenvolvedor do navegador. Com o Node.js, por&eacute;m, o c&oacute;digo &eacute; executado diretamente no computador, sem depender do navegador.<\/p><p class=\"wp-block-paragraph\">Se estiver trabalhando no pr&oacute;prio computador e preferir um editor de c&oacute;digo com interface gr&aacute;fica, como VS Code ou Sublime Text, tamb&eacute;m pode criar o arquivo <strong>hello.js<\/strong> nele.<\/p><p class=\"wp-block-paragraph\">Depois de salvar o arquivo, abra o terminal, acesse a pasta onde ele est&aacute; usando <strong>cd path\/to\/folder<\/strong> e execute o mesmo comando <strong>node hello.js<\/strong>.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-usar-modulos-do-node-js\">Como usar m&oacute;dulos do Node.js<\/h2><p class=\"wp-block-paragraph\">No Node.js, os m&oacute;dulos permitem dividir o c&oacute;digo em componentes reutiliz&aacute;veis. O Node.js inclui dezenas de m&oacute;dulos nativos, como <strong>fs<\/strong>, para opera&ccedil;&otilde;es com o sistema de arquivos, <strong>http<\/strong>, para criar servidores, e <strong>path<\/strong>, para trabalhar com caminhos de arquivos.<\/p><p class=\"wp-block-paragraph\">Para ver como isso funciona na pr&aacute;tica, vamos usar o m&oacute;dulo <strong>fs<\/strong>. Primeiro, crie um arquivo chamado <strong>sample.txt<\/strong> com o seguinte conte&uacute;do:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">This is a sample text file.<\/pre><p class=\"wp-block-paragraph\">Em seguida, crie o arquivo <strong>read-file.js<\/strong> na mesma pasta:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">const fs = require('fs');\n\nconst content = fs.readFileSync('sample.txt', 'utf8');\nconsole.log(content);<\/pre><p class=\"wp-block-paragraph\">A primeira linha importa o m&oacute;dulo nativo <strong>fs<\/strong> usando <strong>require()<\/strong>. Em seguida, <strong>readFileSync()<\/strong> l&ecirc; o arquivo e retorna seu conte&uacute;do como uma string.<\/p><p class=\"wp-block-paragraph\">O argumento <strong>utf8<\/strong> especifica como o Node.js deve ler o arquivo. Sem ele, o resultado seria um objeto Buffer, que representa o conte&uacute;do em bytes brutos, em vez de texto leg&iacute;vel.<\/p><p class=\"wp-block-paragraph\">Agora, execute o seguinte comando no terminal:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">node read-file.js<\/pre><p class=\"wp-block-paragraph\">O terminal exibir&aacute; o conte&uacute;do que voc&ecirc; adicionou ao arquivo <strong>sample.txt<\/strong>.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058521932-4-informar.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal mostrando a sa&iacute;da do comando node read-file.js\" class=\"wp-image-59862\" style=\"width:840px;height:auto\"><\/figure><\/div><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-criar-um-servidor-basico-com-node-js\">Como criar um servidor b&aacute;sico com Node.js<\/h2><p class=\"wp-block-paragraph\">Criar um servidor HTTP com Node.js &eacute; um dos primeiros passos para desenvolver um back-end na pr&aacute;tica. Para isso, vamos usar o m&oacute;dulo nativo <strong>http<\/strong>.<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Crie o arquivo do servidor.<\/strong> Crie um arquivo chamado <strong>server.js<\/strong> e adicione o seguinte c&oacute;digo:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">const http = require('http');\n\nconst hostname = '127.0.0.1';\nconst port = 3000;\n\nconst server = http.createServer((req, res) =&gt; {\n   res.statusCode = 200;\n   res.setHeader('Content-Type', 'text\/plain');\n   res.end('Hello from Node.js server!n');\n});\n\nserver.listen(port, hostname, () =&gt; {\n   console.log(`Server running at http:\/\/${hostname}:${port}\/`);\n});<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Inicie o servidor executando este comando:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">node server.js<\/pre><p class=\"wp-block-paragraph\">O terminal dever&aacute; exibir a mensagem <strong>Server running at<\/strong> <strong>http:\/\/127.0.0.1:3000\/<\/strong>.<\/p><ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Abra o servidor no navegador.<\/strong> Acesse <strong>http:\/\/127.0.0.1:3000\/<\/strong> para ver a mensagem &ldquo;Hello from Node.js server!&rdquo; na p&aacute;gina.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058524936-5-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Navegador mostrando a resposta do servidor Node.js\" class=\"wp-image-59866\" style=\"width:840px;height:auto\"><\/figure><\/div><p class=\"wp-block-paragraph\">O servidor continuar&aacute; funcionando at&eacute; que voc&ecirc; o interrompa pressionando <strong>Ctrl+C<\/strong> no terminal.<\/p><p class=\"wp-block-paragraph\">Veja o que faz cada parte do arquivo <strong>server.js<\/strong>:<\/p><ul class=\"wp-block-list\">\n<li>O endere&ccedil;o <strong>127.0.0.1<\/strong>, definido como hostname, indica que o servidor aceita conex&otilde;es apenas do pr&oacute;prio computador.<\/li>\n\n\n\n<li><strong>http.createServer()<\/strong> cria o servidor. A fun&ccedil;&atilde;o de callback &eacute; executada sempre que um cliente envia uma requisi&ccedil;&atilde;o.<\/li>\n\n\n\n<li><strong>res.statusCode = 200<\/strong> define o c&oacute;digo de status HTTP como 200 (OK), indicando que a requisi&ccedil;&atilde;o foi bem-sucedida.<\/li>\n\n\n\n<li><strong>res.setHeader(&lsquo;Content-Type&rsquo;, &lsquo;text\/plain&rsquo;)<\/strong> informa ao navegador que a resposta cont&eacute;m texto simples, e n&atilde;o HTML.<\/li>\n\n\n\n<li><strong>res.end()<\/strong> envia o corpo da resposta e encerra a resposta HTTP.<\/li>\n\n\n\n<li><strong>server.listen()<\/strong> inicia o servidor e o vincula &agrave; porta e ao hostname especificados.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Se estiver executando o servidor em um VPS, altere o hostname para <strong>0.0.0.0<\/strong>. Depois de salvar o arquivo, libere a porta no <a data-click-id=\"hgr-post-content-link-firewall-ufw-uncomplicated-firewall\" href=\"\/pt\/tutoriais\/firewall-ubuntu-ufw\/\">firewall UFW (Uncomplicated Firewall)<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo ufw allow 3000<\/pre><p class=\"wp-block-paragraph\">Em seguida, abra o navegador e acesse <strong>http:\/\/your-vps-ip:3000\/<\/strong>.<\/p><p class=\"wp-block-paragraph\">Quem usa um VPS da Hostinger pode encontrar o endere&ccedil;o IP do servidor no painel da Hostinger, em <strong>VPS &rarr; Gerenciar &rarr; Vis&atilde;o geral &rarr; Detalhes do VPS<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6ad7624bb157f\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6ad7624bb157f\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/Visao-geral-vps-overview-hpanel-dashboard.png\/public\" alt=\"hPanel da Hostinger mostrando o endere&ccedil;o IP do servidor na se&ccedil;&atilde;o Detalhes do VPS\" class=\"wp-image-59890\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><figure class=\"wp-block-image size-large\"><a data-click-id=\"hgr-post-content-link-pt-alojamento-vps\" aria-label=\"Alojamento vps\" href=\"\/pt\/alojamento-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/26\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/w=1536,fit=scale-down 1536w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-instalar-e-usar-pacotes-com-npm\">Como instalar e usar pacotes com npm<\/h2><p class=\"wp-block-paragraph\">O <a data-click-id=\"hgr-post-content-link-node-package-manager-npm\" href=\"\/pt\/tutoriais\/o-que-e-npm\/\">Node Package Manager (npm)<\/a> j&aacute; vem instalado com o Node.js e oferece acesso a mais de dois milh&otilde;es de pacotes de c&oacute;digo aberto.<\/p><p class=\"wp-block-paragraph\">Diferentemente dos m&oacute;dulos nativos, como <strong>fs<\/strong> e <strong>http<\/strong>, os pacotes de terceiros precisam ser instalados com o <strong>npm<\/strong> antes de serem usados. Veja como:<\/p><ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Crie uma pasta para o projeto.<\/strong> No terminal, crie uma pasta no diret&oacute;rio atual e acesse-a:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir node-project\ncd node-project<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Inicialize o projeto.<\/strong> Execute o comando abaixo para gerar um arquivo <strong>package.json<\/strong> com as configura&ccedil;&otilde;es padr&atilde;o:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm init -y<\/pre><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058530949-7-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal mostrando a sa&iacute;da do comando npm init -y\" class=\"wp-image-59868\" style=\"width:840px;height:auto\"><\/figure><\/div><p class=\"wp-block-paragraph\">O <strong>package.json<\/strong> funciona como um manifesto do projeto, reunindo informa&ccedil;&otilde;es sobre depend&ecirc;ncias, scripts e metadados em um s&oacute; arquivo.<\/p><ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Instale um pacote.<\/strong> Neste exemplo, vamos instalar o <strong>dayjs<\/strong>, uma biblioteca leve para manipular datas:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm install dayjs<\/pre><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058533956-8-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal mostrando a sa&iacute;da do comando npm install dayjs\" class=\"wp-image-59867\" style=\"width:840px;height:auto\"><\/figure><\/div><p class=\"wp-block-paragraph\">Esse comando baixa o pacote para a pasta <strong>node_modules<\/strong>, adiciona o <strong>dayjs<\/strong> ao campo <strong>dependencies<\/strong> do arquivo <strong>package.json<\/strong> e cria o arquivo <strong>package-lock.json<\/strong>, que registra as vers&otilde;es exatas dos pacotes instalados.<\/p><ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Use o pacote no c&oacute;digo.<\/strong> Crie um arquivo chamado <strong>index.js<\/strong>:<\/li>\n<\/ol><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">const dayjs = require('dayjs');\n\nconst now = dayjs().format('MMMM D, YYYY');\nconsole.log(`Today is ${now}`);<\/pre><p class=\"wp-block-paragraph\">Quando voc&ecirc; chama <strong>require(&lsquo;dayjs&rsquo;)<\/strong>, o Node.js procura o pacote na pasta <strong>node_modules<\/strong>.<\/p><p class=\"wp-block-paragraph\">Depois, execute <strong>node index.js<\/strong>. O terminal exibir&aacute; a data atual:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058536960-9-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal mostrando a sa&iacute;da do comando node index.js\" class=\"wp-image-59870\" style=\"width:840px;height:auto\"><\/figure><\/div><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-como-o-node-js-executa-codigo-assincrono\">Como o Node.js executa c&oacute;digo ass&iacute;ncrono?<\/h2><p class=\"wp-block-paragraph\">O Node.js executa c&oacute;digo ass&iacute;ncrono processando opera&ccedil;&otilde;es mais demoradas em segundo plano, enquanto o restante do c&oacute;digo continua sendo executado. Veja um exemplo simples:<\/p><p class=\"wp-block-paragraph\">Primeiro, crie o arquivo <strong>async-example.js<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">console.log('First');\n\nsetTimeout(() =&gt; {\n   console.log('Second (after 2 seconds)');\n}, 2000);\n\nconsole.log('Third');<\/pre><p class=\"wp-block-paragraph\">Em seguida, execute <strong>node async-example.js<\/strong> para conferir o resultado:<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2026\/10\/1778058539967-10-informacao.png\/w=1024,h=1024,fit=scale-down\" alt=\"Terminal mostrando a sa&iacute;da do comando node async-example.js\" class=\"wp-image-59871\" style=\"width:840px;height:auto\"><\/figure><\/div><p class=\"wp-block-paragraph\">Observe que &ldquo;Third&rdquo; aparece antes de &ldquo;Second&rdquo;, mesmo estando depois no c&oacute;digo. Isso acontece porque <strong>setTimeout()<\/strong> agenda a execu&ccedil;&atilde;o da fun&ccedil;&atilde;o de callback que exibe &ldquo;Second&rdquo; para depois de 2.000 milissegundos. Enquanto isso, o Node.js continua executando o restante do c&oacute;digo.<\/p><p class=\"wp-block-paragraph\">O Node.js registra o temporizador, passa para a pr&oacute;xima linha e exibe &ldquo;Third&rdquo; imediatamente. Depois de dois segundos, a fun&ccedil;&atilde;o de callback &eacute; executada e &ldquo;Second&rdquo; aparece no terminal.<\/p><p class=\"wp-block-paragraph\">Esse modelo n&atilde;o bloqueante permite que um &uacute;nico servidor Node.js processe milhares de conex&otilde;es simultaneamente. Enquanto uma requisi&ccedil;&atilde;o aguarda uma consulta ao banco de dados, a leitura de um arquivo ou uma chamada de rede, o servidor continua processando outras requisi&ccedil;&otilde;es.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-o-que-desenvolver-depois-de-aprender-o-basico-de-node-js\">O que desenvolver depois de aprender o b&aacute;sico de Node.js<\/h2><p class=\"wp-block-paragraph\">Depois de aprender os fundamentos do Node.js, a melhor maneira de avan&ccedil;ar &eacute; colocar o conhecimento em pr&aacute;tica com um projeto real. Confira quatro caminhos para continuar aprendendo:<\/p><ul class=\"wp-block-list\">\n<li><strong>Crie uma API REST.<\/strong> Use o m&oacute;dulo <strong>http<\/strong> ou um framework como o Express.js para criar endpoints que processem requisi&ccedil;&otilde;es <strong>GET<\/strong>, <strong>POST<\/strong>, <strong>PUT<\/strong> e <strong>DELETE<\/strong>. Esse tipo de API &eacute; uma das bases do desenvolvimento back-end com Node.js e &eacute; amplamente utilizado em projetos, como a <a data-click-id=\"hgr-post-content-link-api-rest-do-wordpress\" href=\"\/pt\/tutoriais\/guia-iniciante-api-rest-wordpress\/\">API REST do WordPress<\/a>.<\/li>\n\n\n\n<li><strong>Crie uma aplica&ccedil;&atilde;o full-stack.<\/strong> Combine o Node.js com um framework de front-end, como React ou Vue.js. Comece com algo simples, como uma lista de tarefas ou um aplicativo de anota&ccedil;&otilde;es que leia e grave informa&ccedil;&otilde;es em um banco de dados. Esse exerc&iacute;cio ajuda a entender como separar o front-end do back-end e como as duas partes funcionam juntas.<\/li>\n\n\n\n<li><strong>Empacote sua aplica&ccedil;&atilde;o com Docker.<\/strong> Executar uma aplica&ccedil;&atilde;o Node.js em um cont&ecirc;iner Docker mant&eacute;m as depend&ecirc;ncias consistentes entre diferentes ambientes. Assim, a aplica&ccedil;&atilde;o pode funcionar no servidor de produ&ccedil;&atilde;o da mesma forma que no seu computador, mesmo que voc&ecirc; migre para outro servidor. Isso ajuda a resolver o cl&aacute;ssico problema de &ldquo;na minha m&aacute;quina funciona&rdquo;.<\/li>\n\n\n\n<li><strong>Coloque sua aplica&ccedil;&atilde;o no ar.<\/strong> V&aacute; al&eacute;m do desenvolvimento local e implante sua aplica&ccedil;&atilde;o Node.js em um VPS ou servi&ccedil;o de hospedagem gerenciada. Nessa etapa, voc&ecirc; vai trabalhar com vari&aacute;veis de ambiente, gerenciamento de processos e configura&ccedil;&otilde;es de produ&ccedil;&atilde;o. Tamb&eacute;m aprender&aacute; a enviar atualiza&ccedil;&otilde;es de c&oacute;digo e fazer novos deploys da aplica&ccedil;&atilde;o.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>O Node.js permite executar JavaScript no lado do servidor. Com ele, &eacute; poss&iacute;vel rodar scripts, processar requisi&ccedil;&otilde;es e desenvolver a l&oacute;gica de back-end diretamente pelo terminal. Depois de instalar o Node.js no ambiente escolhido, seja no computador, em um servidor virtual privado (VPS) ou em um servi&ccedil;o de hospedagem gerenciada, voc&ecirc; j&aacute; pode executar scripts, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/pt\/tutoriais\/como-usar-node-js\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":51986,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Como usar Node.js: guia pr\u00e1tico para iniciantes","rank_math_description":"Aprenda como usar Node.js na pr\u00e1tica: execute scripts, crie um servidor HTTP, use m\u00f3dulos, instale pacotes com npm e entenda como funciona o c\u00f3digo ass\u00edncrono.","rank_math_focus_keyword":"como usar node.js","footnotes":""},"categories":[7708],"tags":[],"class_list":["post-51985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-usar-node-js","default":1},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-usar-node-js","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/51985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/comments?post=51985"}],"version-history":[{"count":0,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/posts\/51985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media\/51986"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/media?parent=51985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/categories?post=51985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/pt\/tutoriais\/wp-json\/wp\/v2\/tags?post=51985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}