{"id":39580,"date":"2023-08-29T12:33:13","date_gmt":"2023-08-29T15:33:13","guid":{"rendered":"\/tutoriais\/?p=39580"},"modified":"2025-12-18T11:41:10","modified_gmt":"2025-12-18T14:41:10","slug":"o-que-e-node-js","status":"publish","type":"post","link":"\/br\/tutoriais\/o-que-e-node-js","title":{"rendered":"O que \u00e9 Node.js, como funciona e como instalar: guia completo"},"content":{"rendered":"<p>Node.js &eacute; um ambiente de execu&ccedil;&atilde;o que permite executar JavaScript no lado do servidor. Multiplataforma e de c&oacute;digo aberto, o software tem uma arquitetura que proporciona transfer&ecirc;ncias de dados eficientes, o que o torna muito popular para desenvolver aplica&ccedil;&otilde;es em tempo real e amplamente escal&aacute;veis.<\/p><p>Nos par&aacute;grafos abaixo, contaremos o que &eacute; Node.js e contaremos tudo sobre ele, incluindo como ele funciona e suas aplica&ccedil;&otilde;es pr&aacute;ticas. N&oacute;s tamb&eacute;m vamos explicar como configurar o software em seu servidor, para que voc&ecirc; possa come&ccedil;ar seu desenvolvimento rapidamente. Vamos l&aacute;?&nbsp;<\/p><p>\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-introducao-ao-node-js\"><strong>Introdu&ccedil;&atilde;o ao Node.js<\/strong><\/h2><p>Nos seus prim&oacute;rdios, o&nbsp;<a href=\"\/br\/tutoriais\/o-que-e-javascript\"><strong>JavaScript<\/strong><\/a>&nbsp;s&oacute; podia ser executado no front-end, pois seu runtime estava dispon&iacute;vel apenas para navegadores como o Google Chrome. Isso o tornava vi&aacute;vel para a constru&ccedil;&atilde;o de aplica&ccedil;&otilde;es do lado do cliente, como sites din&acirc;micos.<\/p><p><strong>Ryan Dahl<\/strong>&nbsp;criou o Node.js em 2009 justamente para expandir as funcionalidades do JavaScript, oferecendo um ambiente de execu&ccedil;&atilde;o de back-end leve e responsivo. Em outras palavras, o Node.js permite que os desenvolvedores usem a linguagem como o c&oacute;digo do lado do servidor (<em>server side<\/em>).<\/p><p>Com isso, os desenvolvedores podem programar tanto o front quanto o back-end na nesma linguagem. Isso ajuda a otimizar o desenvolvimento e a manuten&ccedil;&atilde;o das aplica&ccedil;&otilde;es, pois v&aacute;rios trechos de c&oacute;digo podem ser reaproveitados.<\/p><p>Al&eacute;m disso, desenvolver o back-end em JavaScript permite que seu aplicativo use o modelo de programa&ccedil;&atilde;o ass&iacute;ncrona do Node.js. Basicamente, essa arquitetura permite que o seu servi&ccedil;o web atenda a v&aacute;rias solicita&ccedil;&otilde;es de usu&aacute;rios de maneira mais eficiente.<\/p><p>Falaremos mais sobre isso na pr&oacute;xima se&ccedil;&atilde;o.<\/p><h2 class=\"wp-block-heading\" id=\"h-como-funciona-o-node-js\"><strong>Como funciona o Node.js<\/strong><\/h2><p>Para entender o princ&iacute;pio de funcionamento do Node.js, &eacute; preciso compreender alguns termos.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"770\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/nodejs-workflow-diagram.png\/public\" alt=\"infogr&aacute;fico explicando o funcionamento do node.js\" class=\"wp-image-46699\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/nodejs-workflow-diagram.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/nodejs-workflow-diagram.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/nodejs-workflow-diagram.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/nodejs-workflow-diagram.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><p><strong>Modelo de I\/O non-blocking (n&atilde;o bloqueante)<\/strong><\/p><p>Para lidar com uma solicita&ccedil;&atilde;o de usu&aacute;rio, servidores tradicionais, como&nbsp;<strong>Apache&nbsp;<\/strong>e&nbsp;<strong>Tomcat<\/strong>, usam uma<strong>thread<\/strong>&nbsp;que pode atender apenas um cliente por vez. Se o servidor atingir o n&uacute;mero m&aacute;ximo de threads, uma nova solicita&ccedil;&atilde;o precisa esperar at&eacute; que as solicita&ccedil;&otilde;es existentes terminem suas tarefas.<\/p><p>Threads que ainda est&atilde;o processando solicita&ccedil;&otilde;es de usu&aacute;rios bloquear&atilde;o a entrada de novos clientes e n&atilde;o encaminhar&atilde;o a sa&iacute;da para servi&ccedil;os externos, como APIs ou bancos de dados. Isso pode levar a gargalos durante picos de tr&aacute;fego, que geram muitas conex&otilde;es simult&acirc;neas.<\/p><p>O Node.js, por outro lado, possui um modelo n&atilde;o bloqueante (non-blocking), o que significa que uma &uacute;nica thread pode receber e encaminhar uma nova solicita&ccedil;&atilde;o sem esperar que a atual seja conclu&iacute;da. Esse sistema leva o nome de&nbsp;<strong>arquitetura ass&iacute;ncrona<\/strong>.<\/p><p><strong>Arquitetura ass&iacute;ncrona<\/strong><\/p><p>A arquitetura&nbsp;<strong>s&iacute;ncrona<\/strong>&nbsp;processa as solicita&ccedil;&otilde;es do cliente em uma ordem, o que significa que o servidor web necessariamente completar&aacute; a opera&ccedil;&atilde;o atual antes de iniciar uma nova.<\/p><p>Enquanto isso, uma aplica&ccedil;&atilde;o com arquitetura&nbsp;<strong>ass&iacute;ncrona<\/strong>&nbsp;pode iniciar uma nova opera&ccedil;&atilde;o enquanto aguarda os resultados de outras opera&ccedil;&otilde;es. Ao receber uma resposta, o servidor web retorna os dados para o cliente.<\/p><p>A arquitetura ass&iacute;ncrona &eacute; adequada para aplica&ccedil;&otilde;es que requerem a busca de dados de outros servi&ccedil;os, como&nbsp;<a href=\"https:\/\/aws.amazon.com\/pt\/what-is\/api\/\" target=\"_blank\" rel=\"noopener\"><strong>interfaces de programa&ccedil;&atilde;o de aplica&ccedil;&otilde;es<\/strong><\/a>&nbsp;(APIs) ou bancos de dados. Em vez de ficar ocioso, o servidor web pode processar novas solicita&ccedil;&otilde;es enquanto aguarda respostas.<\/p><p>Embora excelente para tarefas de entrada e sa&iacute;da (I\/O), essa arquitetura faz com que o Node.js exija mais da CPU, pois ele usa apenas uma &uacute;nica thread para lidar com v&aacute;rias solicita&ccedil;&otilde;es.<\/p><p><strong>Orientado a eventos (event-driven)<\/strong><\/p><p>No Node.js,&nbsp;<strong>eventos<\/strong>&nbsp;s&atilde;o sinais indicando que uma determinada a&ccedil;&atilde;o ocorreu. Por exemplo, eles podem acionar uma nova opera&ccedil;&atilde;o ou uma conclus&atilde;o de tarefa.<\/p><p>Eventos s&atilde;o fundamentais para possibilitar o modelo ass&iacute;ncrono. Eles operam em um&nbsp;<em>event loop<\/em>, instruindo o Node.js sobre como lidar com o fluxo de solicita&ccedil;&otilde;es.<\/p><p>Ao receber uma nova solicita&ccedil;&atilde;o do cliente, o loop de eventos come&ccedil;a. Ent&atilde;o, o Node.js encaminha a solicita&ccedil;&atilde;o para o servi&ccedil;o externo apropriado, como uma API. Assim que seu servidor recebe os dados, um novo evento aciona uma&nbsp;<strong>&nbsp;fun&ccedil;&atilde;o de retorno de chamada (callback)<\/strong>.<\/p><p>Uma fun&ccedil;&atilde;o de callback executa outra fun&ccedil;&atilde;o quando uma condi&ccedil;&atilde;o espec&iacute;fica ou opera&ccedil;&atilde;o ass&iacute;ncrona &eacute; conclu&iacute;da. Ela permite que o servidor web processe solicita&ccedil;&otilde;es e envie respostas para o cliente.<\/p><p><strong>Motor JavaScript V8<\/strong><\/p><p>No n&uacute;cleo do Node.js est&aacute; o motor JavaScript V8, que analisa e executa a linguagem. Em outras palavras, ele permite que seu servidor de back-end execute c&oacute;digo JavaScript fora de um navegador.<\/p><p>O Google originalmente desenvolveu este motor para o Google Chrome. Mais tarde, o Node.js adotou essa tecnologia para permitir que o JavaScript seja executado de forma independente em cima do software.<\/p><h2 class=\"wp-block-heading\" id=\"h-vantagens-de-usar-o-node-js\"><strong>Vantagens de usar o Node.js<\/strong><\/h2><p>Agora que voc&ecirc; j&aacute; entende o funcionamento do Node.js, vamos explorar como ele pode beneficiar o desenvolvimento da sua aplica&ccedil;&atilde;o web.<\/p><ul class=\"wp-block-list\">\n<li><strong>Velocidade.&nbsp;<\/strong>A arquitetura ass&iacute;ncrona do Node.js lida com v&aacute;rias opera&ccedil;&otilde;es de entrada e sa&iacute;da de maneira mais eficiente, resultando em uma aplica&ccedil;&atilde;o mais responsiva. Isso tamb&eacute;m torna o tempo de execu&ccedil;&atilde;o perfeito para a busca de dados em tempo real.&nbsp;<\/li>\n\n\n\n<li><strong>Mecanismo de tratamento de erros.&nbsp;<\/strong>Os&nbsp;<a href=\"https:\/\/nodejs.org\/api\/errors.html\" target=\"_blank\" rel=\"noopener\"><strong>objetos de erro<\/strong><\/a>&nbsp;integrados proporcionam aos usu&aacute;rios mais flexibilidade no tratamento de in&uacute;meros problemas. Eles permitem que os desenvolvedores obtenham informa&ccedil;&otilde;es mais detalhadas sobre o erro para solucionar os problemas de maneira mais eficiente.&nbsp;<\/li>\n\n\n\n<li><strong>Efici&ecirc;ncia no desenvolvimento.&nbsp;<\/strong>O Node.js permite que os desenvolvedores usem JavaScript em qualquer lugar para o desenvolvimento full-stack. Isso facilita o desenvolvimento, pois o c&oacute;digo trabalha perfeitamente entre o back-end e o front-end.&nbsp;<\/li>\n\n\n\n<li><strong>Ecossistema completo.&nbsp;<\/strong>Os usu&aacute;rios podem instalar v&aacute;rios m&oacute;dulos atrav&eacute;s do Gerenciador de Pacotes Node (NPM) para adicionar novas funcionalidades &agrave;s suas aplica&ccedil;&otilde;es Node.js sem precisar program&aacute;-las do zero.<\/li>\n\n\n\n<li><strong>Flexibilidade e escalabilidade.&nbsp;<\/strong>Os desenvolvedores podem usar o Node.js com outros frameworks e sistemas operacionais. Tamb&eacute;m &eacute; poss&iacute;vel escalar o tempo de execu&ccedil;&atilde;o usando diferentes abordagens, como a instala&ccedil;&atilde;o de um balanceador de carga ou a configura&ccedil;&atilde;o de&nbsp;<a href=\"https:\/\/microservices.io\/\" target=\"_blank\" rel=\"noopener\"><strong>microservices<\/strong><\/a>.<\/li>\n\n\n\n<li><strong>C&oacute;digo aberto.<\/strong>&nbsp;O c&oacute;digo-fonte do Node.js &eacute; aberto a todos os usu&aacute;rios, e seus criadores incentivam valores como transpar&ecirc;ncia, inova&ccedil;&atilde;o e personaliza&ccedil;&atilde;o. O runtime tamb&eacute;m tem forte apoio da comunidade.&nbsp;<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-o-que-voce-pode-fazer-com-node-js\"><strong>O que voc&ecirc; pode fazer com Node.js<\/strong><\/h2><p>Aqui est&atilde;o v&aacute;rios casos de uso do Node.js que podem se beneficiar de elementos como entradas e sa&iacute;das responsivas e arquitetura ass&iacute;ncrona:<\/p><ul class=\"wp-block-list\">\n<li><strong>Chats e transmiss&otilde;es ao vivo.<\/strong>&nbsp;Plataformas de bate-papo e transmiss&atilde;o envolvem muitas opera&ccedil;&otilde;es de I\/O, pois os usu&aacute;rios enviam e recebem dados em tempo real. O processamento eficiente do Node.js ajuda a minimizar o atraso, pois pode lidar com m&uacute;ltiplas solicita&ccedil;&otilde;es de clientes simultaneamente.<\/li>\n\n\n\n<li><strong>Fluxos de dados.<\/strong>&nbsp;O Node.js pode buscar e enviar informa&ccedil;&otilde;es de fontes externas rapidamente, tornando-o uma op&ccedil;&atilde;o ideal para fluxos de dados (data streams) em tempo real. Com isso, voc&ecirc; pode usar o Node.js para aplica&ccedil;&otilde;es de monitoramento de sistemas e mercado de a&ccedil;&otilde;es, por exemplo.&nbsp;<\/li>\n\n\n\n<li><strong>Servidores proxy.&nbsp;<\/strong>Um servidor proxy &eacute; um intermedi&aacute;rio entre clientes e o servidor de hospedagem, geralmente usado para balanceamento de carga ou filtragem de tr&aacute;fego. O Node.js garante que as solicita&ccedil;&otilde;es do cliente e a resposta do servidor ocorram suavemente.&nbsp;<\/li>\n\n\n\n<li><strong>APIs RESTful.<\/strong>&nbsp;O Node.js &eacute; bastante usado para criar APIs RESTful, que permitem que as aplica&ccedil;&otilde;es usem servi&ccedil;os externos atrav&eacute;s de uma rede.&nbsp;<\/li>\n\n\n\n<li><strong>Aplica&ccedil;&otilde;es de p&aacute;gina &uacute;nica (SPAs).&nbsp;<\/strong>Algumas SPAs, como o Gmail e o PayPal, podem atualizar dados no front-end em tempo real sem a necessidade de atualizar a p&aacute;gina. O Node.js permite que os dados do servidor de hospedagem sejam transferidos rapidamente.<\/li>\n<\/ul><h2 class=\"wp-block-heading\" id=\"h-node-js-vs-outras-tecnologias-de-back-end\"><strong>Node.js vs. outras tecnologias de back-end<\/strong><\/h2><p>Al&eacute;m do Node.js, os desenvolvedores tamb&eacute;m usam v&aacute;rias outras tecnologias para desenvolver aplica&ccedil;&otilde;es de back-end. Abaixo, vamos falar sobre algumas das mais populares e como elas se comparam com o Node.js.<\/p><p><a href=\"https:\/\/dotnet.microsoft.com\/\" target=\"_blank\" rel=\"noopener\"><strong>.NET<\/strong><\/a><\/p><p>.NET &eacute; uma estrutura de aplica&ccedil;&atilde;o web muito popular entre aplica&ccedil;&otilde;es empresariais de grande escala. Apesar de ser um produto da Microsoft, ela &eacute; compat&iacute;vel com Linux e macOS. No entanto, muitos desenvolvedores afirmam que ela &eacute; mais responsiva quando executada no Windows.<\/p><p>.NET suporta linguagens de programa&ccedil;&atilde;o&nbsp;<a href=\"https:\/\/www.alura.com.br\/artigos\/poo-programacao-orientada-a-objetos\" target=\"_blank\" rel=\"noopener\"><strong>orientadas a objetos<\/strong><\/a>, como&nbsp;<strong>C++<\/strong>,&nbsp;<strong>C#<\/strong>&nbsp;e&nbsp;<strong>VB.<\/strong>&nbsp;Isso torna o framework mais adequado para desenvolvedores que desejam tirar proveito da flexibilidade e dos recursos dessas linguagens.<\/p><p>O framework .NET adota a abordagem multithread com um modelo de processamento ass&iacute;ncrono. Esta arquitetura &eacute; adequada se o seu servi&ccedil;o envolve principalmente tarefas complexas e que exigem bastante poder de processamento.<\/p><p>No entanto, as aplica&ccedil;&otilde;es .NET s&atilde;o mais dif&iacute;ceis de desenvolver. Se seus servi&ccedil;os web envolvem muitas chamadas externas, o Node.js acaba sendo mais eficiente para construir o seu back-end.<\/p><p><a href=\"https:\/\/rubyonrails.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Ruby on Rails<\/strong><\/a><\/p><p>Ruby on Rails &eacute; uma estrutura de desenvolvimento web escrita na linguagem orientada a objetos Ruby. Ela segue a abordagem modelo-vis&atilde;o-controlador (MVC), que fornece uma estrutura definida para a sua aplica&ccedil;&atilde;o.<\/p><p>Essa estrutura permite que os desenvolvedores construam eficientemente um prot&oacute;tipo funcional de aplicativo e incluam recursos adicionais posteriormente. Isso torna o Ruby on Rails ideal para projetos iterativos, onde os desenvolvedores dividem um projeto em tarefas menores.<\/p><p>Apesar da simplicidade, a abordagem MVC torna o Ruby on Rails menos flex&iacute;vel do que o Node.js. Enquanto isso, o runtime do JavaScript permite que voc&ecirc; desenvolva uma aplica&ccedil;&atilde;o na forma de microsservi&ccedil;os, tornando-o altamente modular e escal&aacute;vel.<\/p><p>Como o Ruby on Rails &eacute; multithread, ele &eacute; mais adequado para um sistema com v&aacute;rios n&uacute;cleos. No entanto, ele n&atilde;o funciona de forma ass&iacute;ncrona, o que pode diminuir o desempenho do seu aplicativo se ele requerer chamadas de I\/O frequentes.<\/p><p><a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Django<\/strong><\/a><\/p><p>Django &eacute; uma estrutura de desenvolvimento web para&nbsp;<a href=\"\/br\/tutoriais\/como-instalar-python-ubuntu\"><strong>Python<\/strong><\/a>, uma linguagem de programa&ccedil;&atilde;o altamente vers&aacute;til e flex&iacute;vel. Ele &eacute; bastante popular para construir aplica&ccedil;&otilde;es ou servi&ccedil;os que processam grandes quantidades de dados.<\/p><p>Ao contr&aacute;rio do Node.js, que &eacute; ideal para a constru&ccedil;&atilde;o de microsservi&ccedil;os, o Django costuma ser utilizado para desenvolver aplica&ccedil;&otilde;es monol&iacute;ticas. Neste modelo, voc&ecirc; escreve os servi&ccedil;os do seu programa em uma &uacute;nica base de c&oacute;digo.<\/p><p>Embora escal&aacute;veis, as aplica&ccedil;&otilde;es monol&iacute;ticas do Django s&atilde;o menos flex&iacute;veis do que os microsservi&ccedil;os. No entanto, a abordagem modelo-vis&atilde;o-template (MVT) deste framework ajuda os desenvolvedores a construir servi&ccedil;os de forma mais eficiente usando componentes menores e reutiliz&aacute;veis.<\/p><p>O Django usa uma arquitetura s&iacute;ncrona e multithread, o que o torna adequado para aplica&ccedil;&otilde;es monol&iacute;ticas que usam muito dados e para sistemas com m&uacute;ltiplos n&uacute;cleos.<\/p><p><a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Laravel<\/strong><\/a><\/p><p>O Laravel oferece v&aacute;rios templates comumente usados em aplica&ccedil;&otilde;es web, incluindo autentica&ccedil;&atilde;o, autoriza&ccedil;&atilde;o e notifica&ccedil;&otilde;es.<\/p><p>Os templates do Laravel e sua sintaxe simples facilitam a programa&ccedil;&atilde;o aplica&ccedil;&otilde;es web, especialmente para iniciantes. Al&eacute;m disso, ele segue a arquitetura MVC, que ajuda os desenvolvedores a manter e modificar rapidamente o c&oacute;digo base. Para mais informa&ccedil;&otilde;es, confira nosso <a href=\"\/br\/tutoriais\/tutorial-laravel\">tutorial completo sobre Laravel<\/a>.<\/p><p>No entanto, muitos usu&aacute;rios relatam que o Laravel oferece um desempenho inferior em compara&ccedil;&atilde;o com outras tecnologias de back-end. Isso significa que voc&ecirc; deve ajustar as configura&ccedil;&otilde;es do seu projeto ou lan&ccedil;ar m&atilde;o de softwares adicionais, como o&nbsp;<a href=\"https:\/\/laravel.com\/docs\/11.x\/octane\" target=\"_blank\" rel=\"noopener\"><strong>Octane<\/strong><\/a>, para melhorar sua velocidade.<\/p><p>Se sua aplica&ccedil;&atilde;o envolve muitos fluxos de dados e opera&ccedil;&otilde;es de I\/O em tempo real, o Laravel pode n&atilde;o ser o mais indicado, porque ele usa um mecanismo de bloqueio multi-threaded.<\/p><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Dica<\/h4>\n                    <p>Na hora de escolher tecnologias de back-end, muitos desenvolvedores recomendam priorizar a familiaridade com a tecnologia e as necessidades do projeto. Embora os frameworks tenham desempenhos diferentes, voc&ecirc; pode acabar ignorando o impacto significativo que isso pode ter no uso real delas.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-node-package-manager-npm\"><strong>Node Package Manager (NPM)<\/strong><\/h2><p>O&nbsp;<a href=\"\/br\/tutoriais\/o-que-e-npm\"><strong>Node Package Manager<\/strong><\/a>&nbsp;(NPM) &eacute; uma ferramenta para a instala&ccedil;&atilde;o de software, como m&oacute;dulos ou depend&ecirc;ncias, para aplica&ccedil;&otilde;es JavaScript. Isso melhora a efici&ecirc;ncia do desenvolvimento do Node.js, permitindo que os usu&aacute;rios acessem componentes adicionais a partir de um s&oacute; lugar.<\/p><p>\n\n\n<div><p class=\"important\"><strong>Importante! <\/strong>A sigla NPM pode se referir tanto ao utilit&aacute;rio que os desenvolvedores usam para baixar os pacotes quanto ao reposit&oacute;rio onde os usu&aacute;rios compartilham seus m&oacute;dulos.<\/p><\/div>\n\n\n\n<\/p><p>O reposit&oacute;rio NPM atualmente abriga milh&otilde;es de pacotes e m&oacute;dulos, incluindo a popular&iacute;ssima biblioteca JavaScript&nbsp;<strong>Lodash<\/strong>. Voc&ecirc; tamb&eacute;m pode baixar outros frameworks do reposit&oacute;rio, como o&nbsp;<strong>Express.js&nbsp;<\/strong>e o&nbsp;<strong>Mocha.js<\/strong>.<\/p><p>Para baixar e gerenciar pacotes do NPM, voc&ecirc; deve usar a interface de linha de comando do seu sistema. Por padr&atilde;o, essa utilidade &eacute; configurada automaticamente ap&oacute;s a instala&ccedil;&atilde;o do Node.js, o que explicaremos na se&ccedil;&atilde;o seguinte.<\/p><h2 class=\"wp-block-heading\" id=\"h-primeiros-passos-com-node-js\"><strong>Primeiros passos com Node.js<\/strong><\/h2><p>Agora que voc&ecirc; entende como o Node.js pode beneficiar seus projetos de desenvolvimento web, vamos explicar como configur&aacute;-lo. Para este tutorial, vamos demonstrar como fazer isso em um&nbsp;<strong><a href=\"\/br\/servidor-vps\">servidor privado virtual (VPS) da Hostinger<\/a><\/strong> rodando o&nbsp;<strong>Ubuntu 22.04<\/strong>.<\/p><h3 class=\"wp-block-heading\" id=\"h-instalando-o-node-js\"><strong>Instalando o Node.js<\/strong><\/h3><p>Os usu&aacute;rios do VPS da Hostinger podem&nbsp;<a href=\"\/br\/tutoriais\/instalar-node-js-ubuntu\"><strong>instalar o Node.js no Ubuntu<\/strong><\/a>&nbsp;facilmente sem executar um comando sequer &mdash; basta usar o template do sistema operacional.<\/p><p>Ap&oacute;s comprar o plano de&nbsp;<a href=\"\/br\/vps\/hospedagem-nodejs\"><strong>hospedagem VPS Node.js<\/strong><\/a>, complete as tarefas de configura&ccedil;&atilde;o inicial e aguarde at&eacute; que o processo de instala&ccedil;&atilde;o esteja completo. Isso deve levar alguns minutos, e, ao final, nosso sistema configurar&aacute; automaticamente o ambiente de execu&ccedil;&atilde;o no seu servidor.<\/p><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Escolheu um plano VPS diferente?<\/h4>\n                    <p>Se voc&ecirc; j&aacute; tem um plano de hospedagem VPS da Hostinger, tamb&eacute;m pode instalar o Node.js sem mexer em comandos usando o&nbsp;<a href=\"https:\/\/support.hostinger.com\/pt\/articles\/1583571-quais-sao-os-sistemas-operacionais-disponiveis-para-vps\" target=\"_blank\" rel=\"noopener\"><strong>template de sistema operacional<\/strong><\/a>.<\/p>\n                <\/div>\n\n\n\n<\/p><p>Para outros provedores de hospedagem, voc&ecirc; deve instalar manualmente o Node.js usando comandos. Aqui est&aacute; o passo a passo:<\/p><ol class=\"wp-block-list\">\n<li>Conecte-se ao seu servidor usando o&nbsp;<a href=\"\/br\/tutoriais\/como-se-conectar-servidor-vps-usando-terminal-ssh\"><strong>cliente SSH PuTTY<\/strong><\/a>&nbsp;ou uma ferramenta de linha de comando, como o Terminal. Recomendamos fazer isso como um&nbsp;<strong>superusu&aacute;rio<\/strong>&nbsp;em vez de&nbsp;<strong>root<\/strong>.<\/li>\n\n\n\n<li>Atualize o pacote do seu sistema executando esses comandos um por um:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt update &amp;&amp; sudo apt upgrade<\/pre><ol start=\"3\" class=\"wp-block-list\">\n<li>Agora, execute o seguinte comando para a instala&ccedil;&atilde;o do Node.js:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install nodejs -y&nbsp;<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>Seu gerenciador de pacotes tamb&eacute;m deve instalar automaticamente o NPM. No entanto, execute o comando abaixo para garantir que a ferramenta esteja configurada corretamente:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install npm -y&nbsp;<\/pre><ol start=\"5\" class=\"wp-block-list\">\n<li>Confirme a instala&ccedil;&atilde;o consultando a vers&atilde;o do node usando o seguinte comando:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">node -v<\/pre><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"664\" height=\"58\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/terminal-returns-node-js-version.png\/public\" alt=\"terminal exibindo a vers&atilde;o do node.js\" class=\"wp-image-46698\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/terminal-returns-node-js-version.png\/w=664,fit=scale-down 664w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/terminal-returns-node-js-version.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/terminal-returns-node-js-version.png\/w=150,fit=scale-down 150w\" sizes=\"(max-width: 664px) 100vw, 664px\" \/><\/figure><\/div><p>Ao desenvolver uma aplica&ccedil;&atilde;o Node.js localmente, voc&ecirc; deve instalar o runtime em sua m&aacute;quina local. A maneira mais f&aacute;cil de fazer isso &eacute;&nbsp;<a href=\"https:\/\/nodejs.org\/pt\/download\/prebuilt-installer\" target=\"_blank\" rel=\"noopener\"><strong>baixando o instalador pr&eacute;-constru&iacute;do<\/strong><\/a>&nbsp;baseado no seu sistema operacional na p&aacute;gina oficial de lan&ccedil;amento.<\/p><h3 class=\"wp-block-heading\" id=\"h-desenvolvendo-e-executando-aplicacoes-com-node-js\"><strong>Desenvolvendo e executando aplica&ccedil;&otilde;es com Node.js<\/strong><\/h3><p>Os passos para construir aplica&ccedil;&otilde;es Node.js s&atilde;o semelhantes aos de outras estruturas de desenvolvimento web. Aqui est&aacute; um guia b&aacute;sico:<\/p><ol class=\"wp-block-list\">\n<li>Instale o&nbsp;<strong>Node.js<\/strong>, o<strong>&nbsp;NPM<\/strong>, o editor de c&oacute;digo&nbsp;<strong>VSCode<\/strong>&nbsp;e a extens&atilde;o&nbsp;<a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ritwickdey.LiveServer\" target=\"_blank\" rel=\"noopener\"><strong>Live Server<\/strong><\/a>.&nbsp;<\/li>\n\n\n\n<li>Crie uma pasta para o seu projeto. Abra o&nbsp;<strong>VSCode<\/strong>&nbsp;&rarr;&nbsp;<strong>Arquivo<\/strong>&nbsp;&rarr;&nbsp;<strong>Abrir Pasta<\/strong>e selecione seu novo diret&oacute;rio.<\/li>\n\n\n\n<li>Navegue at&eacute; o&nbsp;<a href=\"https:\/\/code.visualstudio.com\/docs\/terminal\/getting-started\" target=\"_blank\" rel=\"noopener\"><strong>terminal VSCode<\/strong><\/a>&nbsp;e execute o comando abaixo para criar um arquivo de configura&ccedil;&atilde;o para o seu projeto:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">npm init<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>Insira as informa&ccedil;&otilde;es necess&aacute;rias. Depois de finalizar, voc&ecirc; dever&aacute; ver o arquivo&nbsp;<strong>package.json<\/strong>&nbsp;na janela do explorador do VSCode.&nbsp;&nbsp;<\/li>\n\n\n\n<li>Na tela principal, selecione&nbsp;<strong>Novo Arquivo<\/strong>&nbsp;e crie um novo arquivo de projeto. Por exemplo, nomeie-o&nbsp;<strong>app.js<\/strong>.&nbsp;<\/li>\n\n\n\n<li>Escreva seu c&oacute;digo de aplica&ccedil;&atilde;o. Para teste, testar pode criar um simples programa&nbsp;<strong>Hello World<\/strong>. Pressione&nbsp;<strong>Ctrl + S&nbsp;<\/strong>para salvar.&nbsp;<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"648\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/vscode-user-interface-during-node-js-app-development.png\/public\" alt=\"interface do vscode durante desenvolvimento de aplica&ccedil;&atilde;o em node.js\" class=\"wp-image-46697\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/vscode-user-interface-during-node-js-app-development.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/vscode-user-interface-during-node-js-app-development.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/vscode-user-interface-during-node-js-app-development.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/vscode-user-interface-during-node-js-app-development.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><ol start=\"7\" class=\"wp-block-list\">\n<li>Do seu terminal VSCode, execute&nbsp;<strong>node&nbsp;<\/strong>seguido pelo nome do seu arquivo JS para iniciar sua aplica&ccedil;&atilde;o:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">node app.js<\/pre><p>Pronto! Em nosso exemplo, voc&ecirc; pode acessar o aplicativo digitando o endere&ccedil;o <strong>localhost<\/strong>&nbsp;junto com o n&uacute;mero da porta designado no seu navegador.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"133\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/node-js-app-running-in-a-browser.png\/public\" alt=\"aplica&ccedil;&atilde;o node.js rodando em um navegador\" class=\"wp-image-46696\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/node-js-app-running-in-a-browser.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/node-js-app-running-in-a-browser.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/node-js-app-running-in-a-browser.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/08\/node-js-app-running-in-a-browser.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div><p>Os passos s&atilde;o semelhantes, independentemente do seu sistema operacional.<\/p><p>Para implantar o aplicativo no seu servidor web, fa&ccedil;a o upload do arquivo do projeto usando comandos, git ou o&nbsp;<a href=\"\/br\/tutoriais\/como-usar-sftp-ssh-file-transfer-protocol\"><strong>protocolo seguro de transfer&ecirc;ncia de arquivo<\/strong><\/a>&nbsp;(SFTP).<\/p><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Implantando aplica&ccedil;&otilde;es Node.js com facilidade<br>\n<\/h4>\n                    <p>Para implantar uma aplica&ccedil;&atilde;o Node.js de forma simples, use a <a href=\"\/br\/hospedagem-de-aplicacoes-web\">hospedagem para web apps da Hostinger<\/a>. Ela se integra ao <strong>GitHub<\/strong> para facilitar todo o processo de implanta&ccedil;&atilde;o e ainda oferece um recurso nativo que permite enviar os arquivos do projeto diretamente para o ambiente de hospedagem pelo <strong>hPanel<\/strong>.<\/p>\n                <\/div>\n\n\n\n<\/p><h3 class=\"wp-block-heading\" id=\"h-trabalhando-com-modulos-e-dependencias\"><strong>Trabalhando com m&oacute;dulos e depend&ecirc;ncias<\/strong><\/h3><p>O NPM permite que voc&ecirc; gerencie facilmente m&oacute;dulos e depend&ecirc;ncias para melhorar a funcionalidade do seu aplicativo Node.js.<\/p><p>O arquivo&nbsp;<strong>package.json<\/strong>&nbsp;na pasta do seu projeto cont&eacute;m informa&ccedil;&otilde;es sobre as depend&ecirc;ncias do seu aplicativo. Em vez de gerenciar os pacotes individualmente, voc&ecirc; pode chamar o&nbsp;<strong>package.json<\/strong>&nbsp;em massa.<\/p><p>Por exemplo, executar o comando abaixo atualizar&aacute; todas as depend&ecirc;ncias listadas no arquivo:<\/p><pre class=\"wp-block-preformatted\">npm install<\/pre><p>Voc&ecirc; pode verificar pacotes desatualizados e instalar atualiza&ccedil;&otilde;es usando um &uacute;nico comando. Isso torna o processo mais eficiente e mant&eacute;m a consist&ecirc;ncia em diferentes ambientes de projeto.<\/p><p>Al&eacute;m disso, o Node.js permite que voc&ecirc; liste automaticamente novas depend&ecirc;ncias ou m&oacute;dulos (como os&nbsp;<em>E S Modules<\/em>) no&nbsp;<strong>packages.json<\/strong>&nbsp;durante a instala&ccedil;&atilde;o usando a op&ccedil;&atilde;o&nbsp;<strong>&nbsp;&ndash;save<\/strong>. O comando vai ficar assim:<\/p><pre class=\"wp-block-preformatted\">npm install nome-do-software --save<\/pre><p>O Node.js inclui m&oacute;dulos internos que v&ecirc;m pr&eacute;-configurados quando voc&ecirc; faz a instala&ccedil;&atilde;o do ambiente de execu&ccedil;&atilde;o. Voc&ecirc; tamb&eacute;m pode instalar m&oacute;dulos externos do reposit&oacute;rio&nbsp;<strong>npm<\/strong>.<\/p><p>Para carregar um m&oacute;dulo no c&oacute;digo da sua aplica&ccedil;&atilde;o, use a fun&ccedil;&atilde;o&nbsp;<strong>&nbsp;require<\/strong>. Por exemplo, o trecho a seguir chama&nbsp;<strong>express.js<\/strong>&nbsp;e o atribui como a vari&aacute;vel&nbsp;<strong>express<\/strong>:<\/p><pre class=\"wp-block-preformatted\">const express = require('express')<\/pre><p>Os m&oacute;dulos integrados variam dependendo da sua vers&atilde;o do Node.js. Para verificar quais m&oacute;dulos est&atilde;o instalados no seu sistema atual, use o seguinte comando:<\/p><pre class=\"wp-block-preformatted\">npm list -g<\/pre><p>\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Precisa de ajuda com o JavaScript?<\/h4>\n                    <p>Use nosso assistente de IA&nbsp;<strong>Kodee<\/strong>&nbsp;para te ajudar a programar c&oacute;digos JavaScript e gerar comandos npm para desenvolver sua aplica&ccedil;&atilde;o.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-frameworks-e-bibliotecas-node-js\"><strong>Frameworks e bibliotecas Node.js<\/strong><\/h2><p>Na pr&aacute;tica, &eacute; muito raro que desenvolvedores usem apenas o Node.js para construir uma aplica&ccedil;&atilde;o. Em vez disso, eles incorporam um framework para criar a estrutura do projeto e uma biblioteca para adicionar fun&ccedil;&otilde;es facilmente. Aqui est&atilde;o algumas das op&ccedil;&otilde;es mais populares.<\/p><p><a href=\"https:\/\/expressjs.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Express.js<\/strong><\/a><\/p><p>Express.js, ou Express, &eacute; o framework Node.js mais utilizado do mundo. Ele &eacute; bastante popular por conta do seu modelo minimalista e imparcial, que permite aos desenvolvedores estruturar o c&oacute;digo de suas aplica&ccedil;&otilde;es sem restri&ccedil;&otilde;es.<\/p><p>Entre as principais caracter&iacute;sticas deste framework, podemos citar o manuseio de solicita&ccedil;&otilde;es integrado e bastante vers&aacute;til. Ele permite que os desenvolvedores chamem rapidamente uma fun&ccedil;&atilde;o espec&iacute;fica com base no m&eacute;todo e nos padr&otilde;es de URL das solicita&ccedil;&otilde;es HTTP. Sem o Express, tal mecanismo s&oacute; seria poss&iacute;vel usando um c&oacute;digo extenso.<\/p><p>Al&eacute;m disso, o framework Express.js permite que os desenvolvedores usem middleware &mdash; isto &eacute;, um software que modifica solicita&ccedil;&otilde;es e respostas durante a transmiss&atilde;o. Por exemplo, ele permite que voc&ecirc; autentique, registre ou limite os dados transferidos.<\/p><p><a href=\"https:\/\/react.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>React.js<\/strong><\/a><\/p><p>React.js &eacute; uma biblioteca JavaScript de front-end que &eacute; usada para desenvolver a interface do usu&aacute;rio (UI) de um site ou aplicativo web. Embora relativamente nova, ela ganhou enorme popularidade devido ao seu foco na facilidade de uso e na acessibilidade para iniciantes.<\/p><p>Como outras bibliotecas, <a href=\"\/br\/tutoriais\/o-que-e-react-javascript\">o&nbsp;React&nbsp;fornece<\/a> um conjunto de componentes reutiliz&aacute;veis que ajudam os desenvolvedores a construir uma interface complexa sem esfor&ccedil;o. Seu maior diferencial &eacute; o uso da sintaxe&nbsp;<strong>&nbsp;JSX<\/strong>, que permite escrever marca&ccedil;&otilde;es semelhantes ao HTML em JavaScript.<\/p><p>O React ajuda a melhorar a velocidade de carregamento do seu site ou aplica&ccedil;&atilde;o web usando um modelo de objeto de documento (DOM) virtual. Este recurso permite que os navegadores renderizem apenas as se&ccedil;&otilde;es de interface que sofreram altera&ccedil;&otilde;es (em vez de toda a p&aacute;gina), tornando o processo mais eficiente.<\/p><p><a href=\"http:\/\/socket.io\/\" target=\"_blank\" rel=\"noopener\"><strong>Socket.io<\/strong><\/a><\/p><p>A biblioteca JavaScript&nbsp;Socket.io&nbsp;fornece recursos para lidar com a transmiss&atilde;o de dados em tempo real, tornando-a uma alternativa popular para o desenvolvimento de servi&ccedil;os intensivos como jogos, plataformas de transmiss&atilde;o ao vivo e aplicativos de chat.<\/p><p>O&nbsp;Socket.io&nbsp;permite que sua aplica&ccedil;&atilde;o Node.js responda aos clientes sem esperar por suas solicita&ccedil;&otilde;es. Em aplicativos de mensagens, por exemplo, essa funcionalidade permite que os membros do grupo recebam uma mensagem de um usu&aacute;rio automaticamente.<\/p><p>O&nbsp;Socket.io&nbsp;oferece uma maneira mais confi&aacute;vel e responsiva para proporcionar a comunica&ccedil;&atilde;o bidirecional do cliente do que os&nbsp;<strong>WebSockets<\/strong>&nbsp;tradicionais. Sem ele, voc&ecirc; precisaria desenvolver um c&oacute;digo personalizado para gerenciar a conex&atilde;o bidirecional e desviar manualmente as solicita&ccedil;&otilde;es do cliente.<\/p><p><a href=\"https:\/\/nextjs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Next.js<\/strong><\/a><\/p><p>Next.js &eacute; um framework de desenvolvimento web full-stack baseado em React que pode lidar com o front-end e o back-end. Ele fornece blocos de constru&ccedil;&atilde;o e ferramentas para construir a interface de sua aplica&ccedil;&atilde;o, al&eacute;m de sistemas para o lado do servidor.<\/p><p>Por exemplo, a vers&atilde;o mais recente do Next possui um compilador integrado que melhora significativamente o tempo de atualiza&ccedil;&atilde;o do c&oacute;digo. Com isso, as mudan&ccedil;as que voc&ecirc; faz na sua aplica&ccedil;&atilde;o s&atilde;o refletidas no navegador dos usu&aacute;rios mais rapidamente.<\/p><p>O Next.js tamb&eacute;m utiliza um mecanismo de pr&eacute;-renderiza&ccedil;&atilde;o que compila aplica&ccedil;&otilde;es JavaScript no back-end, em vez de no navegador do cliente. Isso ajuda a melhorar a velocidade de carregamento das p&aacute;ginas e a&nbsp;<a href=\"\/br\/tutoriais\/o-que-e-seo\"><strong>otimiza&ccedil;&atilde;o para motores de busca<\/strong><\/a>&nbsp;(SEO).<\/p><h2 class=\"wp-block-heading\" id=\"h-sites-populares-que-usam-node-js\"><strong>Sites populares que usam Node.js<\/strong><\/h2><p>Agora, vamos explorar alguns sites constru&iacute;dos com base no Node.js para demonstrar suas capacidades.<\/p><p><strong>Netflix<\/strong><\/p><p>A capacidade do Node.js de lidar com opera&ccedil;&otilde;es intensivas em tempo real torna-o uma tecnologia ideal para a aplica&ccedil;&otilde;es web de transmiss&atilde;o ao vivo, como a Netflix.<\/p><p><strong>Uber<\/strong><\/p><p>O Uber utiliza Node.js para lidar com a comunica&ccedil;&atilde;o em tempo real entre diferentes clientes e APIs.<\/p><p>Por exemplo, seu aplicativo processa dados de servi&ccedil;os de mapas, sistemas de GPS dos motoristas e solicita&ccedil;&otilde;es de pedidos dos usu&aacute;rios.<\/p><p><strong>eBay<\/strong><\/p><p>O Node.js permite que plataformas de e-commerce, como o eBay, lidem eficientemente com chamadas de API de servi&ccedil;os externos como log&iacute;stica ou provedores de pagamento.<\/p><p>Al&eacute;m disso, os desenvolvedores podem implementar recursos como gerenciamento de estoque e chat ao vivo separadamente, bem como aproveitar as opera&ccedil;&otilde;es eficientes de I\/O do runtime.<\/p><p><strong>PayPal<\/strong><\/p><p>Aplica&ccedil;&otilde;es de gateway de pagamento, como o PayPal, trabalham com outras APIs e middlewares para habilitar transa&ccedil;&otilde;es seguras e criptografadas.<\/p><p>O Node.js permite o processamento de dados em tempo real a partir de v&aacute;rias fontes, incluindo microservi&ccedil;os, para tarefas como detec&ccedil;&atilde;o de fraude.<\/p><figure class=\"wp-block-image size-large\"><a href=\"\/br\/servidor-vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/2023\/02\/BR-VPS-hosting_in-text-banner-1.png\/public\" alt=\"\" class=\"wp-image-32923\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/53\/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\/53\/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\/53\/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\/53\/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\/53\/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\" id=\"h-conclusao\"><strong>Conclus&atilde;o<\/strong><\/h2><p>O Node.js &eacute; um ambiente de runtime que permite executar c&oacute;digo JavaScript no lado do servidor para desenvolvimento de back-end. Ele foi constru&iacute;do com base no motor V8 do Google, inicialmente destinado para o navegador Chrome.<\/p><p>No texto acima, aprendemos que o Node.js emprega uma arquitetura ass&iacute;ncrona, n&atilde;o bloqueante e orientada a eventos. Ele usa uma &uacute;nica thread para atender v&aacute;rias solicita&ccedil;&otilde;es simult&acirc;neas sem enfileiramento, tornando-o adequado para aplica&ccedil;&otilde;es intensivas de entrada e sa&iacute;da.<\/p><p>O software, j&aacute; incluindo o Node Package Manager (NPM), vem pr&eacute;-instalado nos planos de hospedagem Node.js da Hostinger. Para outros provedores, voc&ecirc; provavelmente precisar&aacute; fazer a instala&ccedil;&atilde;o manual do runtime usando comandos ou pacotes bin&aacute;rios.<\/p><p>O NPM permite que voc&ecirc; instale outros frameworks e bibliotecas para complementar o Node.js, como o React.js e o Express.js. Quando combinadas, essas tecnologias s&atilde;o bem excelentes para aplica&ccedil;&otilde;es de n&iacute;vel empresarial, como PayPal, eBay e Uber.<\/p><h2 class=\"wp-block-heading\" id=\"h-o-que-e-node-js-perguntas-frequentes\"><strong>O que &eacute; Node js: perguntas frequentes<\/strong><\/h2><p>Por fim, vamos responder algumas perguntas comuns sobre o Node.js.<\/p><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-69441286b052b\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>O Node.js &eacute; uma linguagem de programa&ccedil;&atilde;o ou um framework?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>O Node.js n&atilde;o &eacute; nem uma linguagem de programa&ccedil;&atilde;o nem um framework. Trata-se de um ambiente de execu&ccedil;&atilde;o JavaScript multiplataforma que permite que a linguagem seja executada como c&oacute;digo do lado do servidor.&nbsp;<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69441286b052e\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>Posso usar Node.js para desenvolvimento de front-end?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Embora voc&ecirc; n&atilde;o possa usar diretamente o Node.js para o desenvolvimento de front-end, ele oferece fun&ccedil;&otilde;es adicionais para isso. Por exemplo, voc&ecirc; pode usar m&oacute;dulos NPM na interface do usu&aacute;rio usando ferramentas como o Browserify. V&aacute;rias bibliotecas de front-end, como React.js, tamb&eacute;m dependem do Node.js.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-69441286b052f\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \"><strong>O Node.js &eacute; indicado para construir aplica&ccedil;&otilde;es web escal&aacute;veis?<\/strong><\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Com certeza! O Node.js permite que voc&ecirc; construa aplica&ccedil;&otilde;es escal&aacute;veis como componentes menores e isolados, chamados microsservi&ccedil;os. Isso torna seu projeto mais f&aacute;cil de escalar, pois voc&ecirc; pode escolher servi&ccedil;os espec&iacute;ficos para aprimorar sem afetar os demais.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Node.js &eacute; um ambiente de execu&ccedil;&atilde;o que permite executar JavaScript no lado do servidor. Multiplataforma e de c&oacute;digo aberto, o software tem uma arquitetura que proporciona transfer&ecirc;ncias de dados eficientes, o que o torna muito popular para desenvolver aplica&ccedil;&otilde;es em tempo real e amplamente escal&aacute;veis. Nos par&aacute;grafos abaixo, contaremos o que &eacute; Node.js e contaremos [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/br\/tutoriais\/o-que-e-node-js\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":39581,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"Node.js \u00e9 um runtime de c\u00f3digo aberto e multiplataforma que executa JavaScript. Descubra por que ele \u00e9 t\u00e3o popular e como instal\u00e1-lo!","rank_math_focus_keyword":"o que \u00e9 node.js","footnotes":""},"categories":[5602],"tags":[7564],"class_list":["post-39580","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-glossario","tag-o-que-e-node-js-2"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/what-is-node-js","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/o-que-e-node-js","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/quest-ce-que-node-js","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/que-es-node-js","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/node-js-adalah","default":0},{"locale":"ko-KR","link":"https:\/\/blog.hostinger.io\/kr\/tutorials\/what-is-node-js\/","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/what-is-node-js","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/what-is-node-js","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/what-is-node-js","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/que-es-node-js","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/que-es-node-js","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/que-es-node-js","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/o-que-e-node-js","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/what-is-node-js","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/what-is-node-js","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/what-is-node-js","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/what-is-node-js","default":0}],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/39580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/users\/356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/comments?post=39580"}],"version-history":[{"count":11,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/39580\/revisions"}],"predecessor-version":[{"id":51665,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/posts\/39580\/revisions\/51665"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media\/39581"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/media?parent=39580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/categories?post=39580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/br\/tutoriais\/wp-json\/wp\/v2\/tags?post=39580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}