{"id":340,"date":"2019-07-31T15:11:41","date_gmt":"2019-07-31T15:11:41","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=340"},"modified":"2019-07-31T15:13:29","modified_gmt":"2019-07-31T15:13:29","slug":"node-em-acao-1","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/","title":{"rendered":"Node em A\u00e7\u00e3o #1"},"content":{"rendered":"\n<p class=\"has-text-color has-vivid-cyan-blue-color\"><strong>Bem Vindo ao Node.js<\/strong><\/p>\n\n\n\n<p>Node.js \u00e9 um ass\u00edncrono, \u00e9 uma\nfuncionalidade que o JavaScript fornece em tempo de execu\u00e7\u00e3o como uma biblioteca\nconcisa. \u00c9 mantida e fornecida pela Funda\u00e7\u00e3o Node.js. H\u00e1 duas ver\u00f5es de Node: Long-Term\nSupport(LTS) e a corrente. Se voc\u00ea quer saber mais sobre o Node, visite a documenta\u00e7\u00e3o\nno site (<a href=\"https:\/\/nodejs.org\/en\/\">https:\/\/nodejs.org\/en\/<\/a>).<\/p>\n\n\n\n<p>Desde que o Node.js apareceu\nem 2009, o JavaScript vem ganhando terreno na programa\u00e7\u00e3o entre os desenvolvedores.\nIsto deve em grande parte a chegada do ECMAScript 2015, o qual resolveu v\u00e1rios\nproblemas cr\u00edticos da vers\u00e3o anterior. Node utiliza o Google\u2019s V8 JavaScript\nengine, que \u00e9 baseado na sexta edi\u00e7\u00e3o do ECMAScript, o qual pode ser chamado de\nES6 ou ES2015. Isto trouxe inova\u00e7\u00f5es tecnol\u00f3gica, tais como, Node, React e\nElectron, isto permitiu a utiliza\u00e7\u00e3o do JavaScript em qualquer lugar: do\nservidor ao navegador e aplica\u00e7\u00f5es nativas para mobiles. Mesmo grande\ncompanhias como a Microsoft est\u00e3o utilizando o JavaScript e a Microsoft tem at\u00e9\ncontribu\u00eddo com o sucesso do Node.<\/p>\n\n\n\n<p class=\"has-text-color has-vivid-cyan-blue-color\"><strong>Uma T\u00edpica Aplica\u00e7\u00e3o Web Node<\/strong><\/p>\n\n\n\n<p>Uma das for\u00e7as do Node e JavaScript\n\u00e9 o modelo de programa\u00e7\u00e3o single-threaded. Threads s\u00e3o fontes comuns de erro, embora\nalgumas linguagens de programa\u00e7\u00e3o mais atual, incluindo Go e Rust, est\u00e3o\ntentando produzir ferramentas para proteger contra isto, o Node continua como o\nmodelo utilizado no navegador. No c\u00f3digo baseado no navegador, n\u00f3s escrevemos uma\nsequ\u00eancia de instru\u00e7\u00f5es que executam uma por uma, o c\u00f3digo n\u00e3o executa nada em\nparalelo. Os usu\u00e1rios comuns n\u00e3o entendem isto, contudo eles n\u00e3o suportam\nlentid\u00f5es tais como: acessar a rede ou fazer um download de um arquivo. Os navegadores\nutilizam eventos, por exemplo, quando voc\u00ea clica em um bot\u00e3o, um evento \u00e9 disparado\ne uma fun\u00e7\u00e3o \u00e9 executada conforme foi definida antes, mas que ainda n\u00e3o foi\nexecutada. Isto evita alguma problemas encontrados na programa\u00e7\u00e3o de threaded, incluindo\nresource deadlocks e race conditions. <\/p>\n\n\n\n<p class=\"has-text-color has-vivid-cyan-blue-color\"><strong>Nonblocking I\/O<\/strong><\/p>\n\n\n\n<p>O que significa em um contexto\na programa\u00e7\u00e3o server-side? A situa\u00e7\u00e3o \u00e9 similar a: requisi\u00e7\u00f5es I\/O tais como acesso\na dico e rede que s\u00e3o comparativamente lentas, n\u00f3s n\u00e3o queremos executar em\ntempo de execu\u00e7\u00e3o a camada l\u00f3gica de neg\u00f3cio enquanto lemos arquivos ou mandamos\nmensagem na rede. Para resolver isto, o Node usa tr\u00eas t\u00e9cnicas: eventos, APIs\nass\u00edncronas e Nonblocking I\/O. Nonblocking I\/O \u00e9 um termo de baixo n\u00edvel do\nponto de vista dos programadores do Node. Isto significa que o seu programa\npode fazer um request para um recurso da rede enquanto faz outra coisa, e\nquando a opera\u00e7\u00e3o da rede termina um callback ir\u00e1 mostrar o resultado. <\/p>\n\n\n\n<p>A imagem mostra uma t\u00edpica\naplica\u00e7\u00e3o web Node que utiliza uma biblioteca de aplica\u00e7\u00f5es web chamada Express\npara manipular um fluxo de pedidos de uma loja. O navegador faz um request para\ncomprar um produto, e a aplica\u00e7\u00e3o checa o estoque, cria uma conta para o\nusu\u00e1rio, envia o recibo por email e recebe uma resposta em JSON HTTP. Junto com\nisto, outras coisas tamb\u00e9m s\u00e3o executada: um email com recibo \u00e9 enviado e o\nbanco de dados \u00e9 atualizado com os detalhes da compra do usu\u00e1rio. O c\u00f3digo em\nsi \u00e9 simples, a maior parte feita em JavaScript, mas o que ocorre em tempo de\nexecu\u00e7\u00e3o utiliza o Nonblocking I\/O.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"776\" height=\"515\" src=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/1-12.png\" alt=\"\" class=\"wp-image-341\" srcset=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/1-12.png 776w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/1-12-300x199.png 300w, https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/1-12-768x510.png 768w\" sizes=\"auto, (max-width: 776px) 100vw, 776px\" \/><\/figure><\/div>\n\n\n\n<p>O banco de dados \u00e9 acessado\npela rede. No Node, quem acessa a rede \u00e9 o Nonblocking, porque o Node utiliza a\nbiblioteca libuv(<a href=\"http:\/\/libuv.org\/\">http:\/\/libuv.org\/<\/a>) para\nfornecer acesso ao sistema operacional do Nonblocking a rede. Esta implementa\u00e7\u00e3o\n\u00e9 diferente no Linux, macOs e Windows, mas n\u00e3o precisa se preocupar porque a\nbiblioteca do JavaScript resolve isto. Enquanto voc\u00ea escreve um c\u00f3digo como\ndb.insert(query, err -&gt; {}), o Node est\u00e1 fazendo uma otimiza\u00e7\u00e3o nos\nbastidores da rede Nonblocking.<\/p>\n\n\n\n<p>O acesso a disco \u00e9 similar,\nmas n\u00e3o \u00e9 igual. Quando um recibo de email \u00e9 gerado e o template do email \u00e9\nlido pelo disco, libuv utiliza uma thread pool para fornecer a ilus\u00e3o que um Nonblocking\nest\u00e3o sendo utilizado. Manipular uma thread pool n\u00e3o \u00e9 t\u00e3o divertido assim, mas\nescrever email.send(\u2018template.ejs\u2019, (err, html) -&gt; {}) \u00e9 muito mais f\u00e1cil de\nentender. <\/p>\n\n\n\n<p>O benef\u00edcio de utilizar APIs ass\u00edncronas com Nonblocking I\/O \u00e9 que o Node pode fazer outras coisas enquanto processos mais lentos s\u00e3o executados. Apesar de voc\u00ea est\u00e1 executando apenas um single-threaded, um single-process de um app web Node, pode-se manipular mais do que uma conex\u00e3o e potencialmente milhares de visitantes de uma vez em um site. Para entender isto voc\u00ea deve dar uma olhada no event loop. <\/p>\n\n\n\n<p class=\"has-text-color has-background has-very-light-gray-color has-vivid-cyan-blue-background-color\"><a rel=\"noreferrer noopener\" target=\"_blank\" href=\"https:\/\/www.amazon.com.br\/gp\/offer-listing\/1617292575\/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1617292575&amp;linkCode=am2&amp;tag=blackzig0b-20&amp;linkId=fefdd9a7c0ae55b687d48c10f97a763a\">Node.js in Action, Second Edition<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/amzn.to\/2LP5AWx\">https:\/\/amzn.to\/2LP5AWx<\/a><\/p>\n\n\n\n<p>#node<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Bem Vindo ao Node.js Node.js \u00e9 um ass\u00edncrono, \u00e9 uma funcionalidade que o JavaScript fornece em tempo de execu\u00e7\u00e3o como uma biblioteca concisa. \u00c9 mantida e fornecida pela Funda\u00e7\u00e3o Node.js. H\u00e1 duas ver\u00f5es de Node: Long-Term Support(LTS) e a corrente. Se voc\u00ea quer saber mais sobre o Node, visite a documenta\u00e7\u00e3o no site (https:\/\/nodejs.org\/en\/). Desde [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":344,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[64],"class_list":["post-340","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-node","tag-node"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.5 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Node em A\u00e7\u00e3o #1 - Viciados em Aprender<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Node em A\u00e7\u00e3o #1\" \/>\n<meta property=\"og:description\" content=\"Bem Vindo ao Node.js Node.js \u00e9 um ass\u00edncrono, \u00e9 uma funcionalidade que o JavaScript fornece em tempo de execu\u00e7\u00e3o como uma biblioteca concisa. \u00c9 mantida e fornecida pela Funda\u00e7\u00e3o Node.js. H\u00e1 duas ver\u00f5es de Node: Long-Term Support(LTS) e a corrente. Se voc\u00ea quer saber mais sobre o Node, visite a documenta\u00e7\u00e3o no site (https:\/\/nodejs.org\/en\/). Desde [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Viciados em Aprender\" \/>\n<meta property=\"article:published_time\" content=\"2019-07-31T15:11:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-07-31T15:13:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"750\" \/>\n\t<meta property=\"og:image:height\" content=\"394\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"blackzig\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"blackzig\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/\"},\"author\":{\"name\":\"blackzig\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"headline\":\"Node em A\u00e7\u00e3o #1\",\"datePublished\":\"2019-07-31T15:11:41+00:00\",\"dateModified\":\"2019-07-31T15:13:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/\"},\"wordCount\":826,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\",\"keywords\":[\"node\"],\"articleSection\":[\"Node\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/\",\"name\":\"Node em A\u00e7\u00e3o #1 - Viciados em Aprender\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\",\"datePublished\":\"2019-07-31T15:11:41+00:00\",\"dateModified\":\"2019-07-31T15:13:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\",\"width\":750,\"height\":394},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Node em A\u00e7\u00e3o #1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/\",\"name\":\"Viciados em Aprender\",\"description\":\"Queremos aprender tudo o que for poss\u00edvel nesta vida.\",\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\",\"name\":\"blackzig\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"contentUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"blackzig\"},\"logo\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg\"},\"sameAs\":[\"http:\\\/\\\/www.micheladrianomedeiros.com.br\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Node em A\u00e7\u00e3o #1 - Viciados em Aprender","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/","og_locale":"pt_PT","og_type":"article","og_title":"Node em A\u00e7\u00e3o #1","og_description":"Bem Vindo ao Node.js Node.js \u00e9 um ass\u00edncrono, \u00e9 uma funcionalidade que o JavaScript fornece em tempo de execu\u00e7\u00e3o como uma biblioteca concisa. \u00c9 mantida e fornecida pela Funda\u00e7\u00e3o Node.js. H\u00e1 duas ver\u00f5es de Node: Long-Term Support(LTS) e a corrente. Se voc\u00ea quer saber mais sobre o Node, visite a documenta\u00e7\u00e3o no site (https:\/\/nodejs.org\/en\/). Desde [&hellip;]","og_url":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/","og_site_name":"Viciados em Aprender","article_published_time":"2019-07-31T15:11:41+00:00","article_modified_time":"2019-07-31T15:13:29+00:00","og_image":[{"width":750,"height":394,"url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","type":"image\/jpeg"}],"author":"blackzig","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"blackzig","Tempo estimado de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#article","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/"},"author":{"name":"blackzig","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"headline":"Node em A\u00e7\u00e3o #1","datePublished":"2019-07-31T15:11:41+00:00","dateModified":"2019-07-31T15:13:29+00:00","mainEntityOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/"},"wordCount":826,"commentCount":0,"publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","keywords":["node"],"articleSection":["Node"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/","name":"Node em A\u00e7\u00e3o #1 - Viciados em Aprender","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#primaryimage"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","datePublished":"2019-07-31T15:11:41+00:00","dateModified":"2019-07-31T15:13:29+00:00","breadcrumb":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#primaryimage","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","width":750,"height":394},{"@type":"BreadcrumbList","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/micheladrianomedeiros.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Node em A\u00e7\u00e3o #1"}]},{"@type":"WebSite","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/","name":"Viciados em Aprender","description":"Queremos aprender tudo o que for poss\u00edvel nesta vida.","publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/micheladrianomedeiros.com.br\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":["Person","Organization"],"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e","name":"blackzig","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","contentUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg","width":1920,"height":1080,"caption":"blackzig"},"logo":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2025\/07\/a7e4b18a2d7254b5cf6da7ca7f92dc71da86905bd1de486e98e3a98664e058f2.jpg"},"sameAs":["http:\/\/www.micheladrianomedeiros.com.br\/"]}]}},"_links":{"self":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/comments?post=340"}],"version-history":[{"count":4,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/340\/revisions"}],"predecessor-version":[{"id":346,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/340\/revisions\/346"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media\/344"}],"wp:attachment":[{"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/media?parent=340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}