{"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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/div><p class=\"wp-block-paragraph\"><strong>Modelo de I\/O non-blocking (n&atilde;o bloqueante)<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Arquitetura ass&iacute;ncrona<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Orientado a eventos (event-driven)<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Motor JavaScript V8<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/dotnet.microsoft.com\/\" target=\"_blank\" rel=\"noopener\"><strong>.NET<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">.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 class=\"wp-block-paragraph\">.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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/rubyonrails.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Ruby on Rails<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/www.djangoproject.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Django<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/laravel.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Laravel<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Dica                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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\n<\/p><h2 class=\"wp-block-heading\" id=\"h-node-package-manager-npm\"><strong>Node Package Manager (NPM)<\/strong><\/h2><p class=\"wp-block-paragraph\">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 class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <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.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Escolheu um plano VPS diferente?                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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\n<\/p><p class=\"wp-block-paragraph\">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>\n<\/div><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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>\n<\/div><p class=\"wp-block-paragraph\">Os passos s&atilde;o semelhantes, independentemente do seu sistema operacional.<\/p><p class=\"wp-block-paragraph\">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            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Implantando aplica&ccedil;&otilde;es Node.js com facilidade&lt;br&gt;\n                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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\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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Precisa de ajuda com o JavaScript?                <\/p>\n            <\/div>\n            <p class=\"protip__content\">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\n<\/p><h2 class=\"wp-block-heading\" id=\"h-frameworks-e-bibliotecas-node-js\"><strong>Frameworks e bibliotecas Node.js<\/strong><\/h2><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/expressjs.com\/\" target=\"_blank\" rel=\"noopener\"><strong>Express.js<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/react.dev\/\" target=\"_blank\" rel=\"noopener\"><strong>React.js<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"http:\/\/socket.io\/\" target=\"_blank\" rel=\"noopener\"><strong>Socket.io<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><a href=\"https:\/\/nextjs.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Next.js<\/strong><\/a><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">Agora, vamos explorar alguns sites constru&iacute;dos com base no Node.js para demonstrar suas capacidades.<\/p><p class=\"wp-block-paragraph\"><strong>Netflix<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>Uber<\/strong><\/p><p class=\"wp-block-paragraph\">O Uber utiliza Node.js para lidar com a comunica&ccedil;&atilde;o em tempo real entre diferentes clientes e APIs.<\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>eBay<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\"><strong>PayPal<\/strong><\/p><p class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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\/w=1024,h=1024,fit=scale-down\" 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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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 class=\"wp-block-paragraph\">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":1},{"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":"http:\/\/www.hostinger.com\/kr\/tutorials\/what-is-node-js\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/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-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/what-is-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},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/que-es-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":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/o-que-e-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}]}}