{"id":901,"date":"2020-05-18T13:14:09","date_gmt":"2020-05-18T16:14:09","guid":{"rendered":"https:\/\/micheladrianomedeiros.com.br\/blog\/?p=901"},"modified":"2020-05-18T13:14:11","modified_gmt":"2020-05-18T16:14:11","slug":"node-em-acao-3","status":"publish","type":"post","link":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/","title":{"rendered":"Node em A\u00e7\u00e3o #3"},"content":{"rendered":"\n<h4 class=\"wp-block-heading\"><strong>Eu Devo Utilizar const ou let?<\/strong><\/h4>\n\n\n\n<p>Quando decido se utilizo const ou let, voc\u00ea precisa sempre utilizar const. Porque a maioria do sue c\u00f3digo ser\u00e1 uso de inst\u00e2ncias da pr\u00f3pria classe, objetos ou valores que n\u00e3o mudam, voc\u00ea deve utilizar const nessas situa\u00e7\u00f5es.<\/p>\n\n\n\n<p>Mesmo as inst\u00e2ncias de objetos que tenham propriedades que possam mudar pode ser declarada com const, porque const significa que a refer\u00eancia \u00e9 apenas leitura, mas seu valor n\u00e3o \u00e9 imut\u00e1vel.<\/p>\n\n\n\n<p>Node tamb\u00e9m tem promises e generators nativos. Promises s\u00e3o suportados por v\u00e1rias bibliotecas, permitindo voc\u00ea escrever c\u00f3digo ass\u00edncronos com um estilo fluente de interface.<\/p>\n\n\n\n<p>Voc\u00ea provavelmente est\u00e1 familiarizado com interfaces fluentes: se voc\u00ea j\u00e1 utilizou uma API como o jQuery ou at\u00e9 mesmo arrays do JavaScript, voc\u00ea j\u00e1 sabe do que estou falando.<\/p>\n\n\n\n<p>O exemplo a seguir mostra como ligar chamadas para manipular um array no JavaScript:<\/p>\n\n\n\n<p>[1, 2, 3]<\/p>\n\n\n\n<p>.map(n =&gt; n * 2)<\/p>\n\n\n\n<p>.filter(n =&gt; n &gt; 3);<\/p>\n\n\n\n<p>Generators s\u00e3o utilizados para dar a programa\u00e7\u00e3o s\u00edncrona o estilo da ass\u00edncrona I\/O. Se voc\u00ea quer ver um exemplo de generators no Node na pr\u00e1tica, veja a aplica\u00e7\u00e3o Koa (<a href=\"https:\/\/koajs.com\/\">https:\/\/koajs.com\/<\/a>). Se voc\u00ea utilizar promises ou outro generators com Koa, voc\u00ea pode produzir valores ao inv\u00e9s de aninhar callbacks.<\/p>\n\n\n\n<p>Um recurso \u00fatil do ES2015 no Node \u00e9 o template strings. No ES5, string literais n\u00e3o suportam interpola\u00e7\u00e3o ou m\u00faltiplas linhas. Agora utilizando o s\u00edmbolo de crase (`), voc\u00ea pode inserir valores e pequenas strings em v\u00e1rias linhas. Isso \u00e9 \u00fatil para aplicativos web:<\/p>\n\n\n\n<p>this.body = `<\/p>\n\n\n\n<p>&lt;div&gt;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Ol\u00e1 daqui do Node&lt;\/h1&gt;<\/p>\n\n\n\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;Bem-vindo, ${user.name}!&lt;\/p&gt;<\/p>\n\n\n\n<p>&lt;\/div&gt;<\/p>\n\n\n\n<p>`;<\/p>\n\n\n\n<p>Utilizando o ES5, fazendo o mesmo c\u00f3digo anterior ficaria assim:<\/p>\n\n\n\n<p>this.body = \u2018\\n\u2019;<\/p>\n\n\n\n<p>this.body += \u2018&lt;div&gt;\\n\u2019;<\/p>\n\n\n\n<p>this.body += \u2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h1&gt;Ol\u00e1 daqui do Node&lt;\/h1&gt;\\n\u2019;<\/p>\n\n\n\n<p>this.body += \u2018&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;p&gt;Bem-vindo, \u2018 + user.name + \u2018 &lt;\/p&gt;\\n\u2019;<\/p>\n\n\n\n<p>this.body += \u2018&lt;div&gt;\\n\u2019;<\/p>\n\n\n\n<p>O estilo antigo utiliza mais c\u00f3digo e tem mais chance de introduzir bugs. O grande recurso final, que \u00e9 importante para programadores Node, \u00e9 a arrow functions. Arrow functions deixa voc\u00ea melhorar a sintaxe.<\/p>\n\n\n\n<p>Por exemplo, se voc\u00ea escrever um callback que tem um simples argumento e retorna um valor, voc\u00ea pode escrever com poucas linhas:<\/p>\n\n\n\n<p>[1, 2, ,3].map(v =&gt; v * 2);<\/p>\n\n\n\n<p>No Node precisamos de dois argumentos, porque o primeiro argumento \u00e9 um callback \u00e9 muitas vezes um objeto error. Nesse caso, voc\u00ea precisa utilizar par\u00eanteses entre os argumentos:<\/p>\n\n\n\n<p>const fs = require(\u2018fs\u2019);<\/p>\n\n\n\n<p>fs.readFile(\u2018package.json\u2019, (err, text) =&gt; console.log(\u2018Length:\u2019, text.length));<\/p>\n\n\n\n<p>Se voc\u00ea precisar utilizar mais de uma linha no corpo da fun\u00e7\u00e3o, voc\u00ea precisa utilizar colchetes. O valor da arrow functions n\u00e3o \u00e9 apenas na melhoria da sintaxe, isso se ajusta com o escopo do JavaScript.<\/p>\n\n\n\n<p>No ES5 e antes, defin\u00edamos fun\u00e7\u00f5es dentro de outras fun\u00e7\u00f5es utilizando o this como refer\u00eancia para ser tornar um objeto global. Vamos ver um exemplo que sofre um problema de bug:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function User(id) {\n    \/\/ constructor\n    this.id = id\u037e\n} \nUser.prototype.load = function() {\n        var self = this\u037e\n        var query = 'SELECT * FROM users WHERE id = ?'\u037e\n        sql.query(query, this.id, function(err, users) {\n        self.name = users&#91;0].name\u037e\n    })\u037e\n}\u037e\n<\/code><\/pre>\n\n\n\n<p>Na linha que tem a declara\u00e7\u00e3o self.name n\u00e3o pode escrever this.name, porque a fun\u00e7\u00e3o this ser\u00e1 um objeto global. Uma gambiarra utilizada para designar um a vari\u00e1vel para o this \u00e9 na entrada da fun\u00e7\u00e3o ou m\u00e9todo pai.<\/p>\n\n\n\n<p>Mas as arrow functions faz isso corretamente. No ES2015, o exemplo anterior pode ser reescrito de forma mais intuitiva:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class User {\n    constructor(id) {\n    this.id = id\u037e\n} \n    load() {\n        const query = 'SELECT * FROM users WHERE id = ?'\u037e\n        sql.query(query, this.id, (err, users) => {\n        this.name = users&#91;0].name\u037e\n    })\u037e\n}}\n<\/code><\/pre>\n\n\n\n<p>N\u00e3o s\u00f3 voc\u00ea pode utilizar a const para modelar melhor a database query, mas tamb\u00e9m n\u00e3o precisa fazer uma gambiarra com a vari\u00e1vel self. ES2015 tem muitos outros recursos que faz o c\u00f3digo Node mais leg\u00edvel, mas vamos ver o que \u00e9 isso no Node e como ele se relaciona aos recursos de I\/O.<\/p>\n\n\n\n<p>Fonte: <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","protected":false},"excerpt":{"rendered":"<p>Eu Devo Utilizar const ou let? Quando decido se utilizo const ou let, voc\u00ea precisa sempre utilizar const. Porque a maioria do sue c\u00f3digo ser\u00e1 uso de inst\u00e2ncias da pr\u00f3pria classe, objetos ou valores que n\u00e3o mudam, voc\u00ea deve utilizar const nessas situa\u00e7\u00f5es. Mesmo as inst\u00e2ncias de objetos que tenham propriedades que possam mudar pode [&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":[],"class_list":["post-901","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-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 #3 - 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-3\/\" \/>\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 #3\" \/>\n<meta property=\"og:description\" content=\"Eu Devo Utilizar const ou let? Quando decido se utilizo const ou let, voc\u00ea precisa sempre utilizar const. Porque a maioria do sue c\u00f3digo ser\u00e1 uso de inst\u00e2ncias da pr\u00f3pria classe, objetos ou valores que n\u00e3o mudam, voc\u00ea deve utilizar const nessas situa\u00e7\u00f5es. Mesmo as inst\u00e2ncias de objetos que tenham propriedades que possam mudar pode [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Viciados em Aprender\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-18T16:14:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-18T16:14:11+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-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/\"},\"author\":{\"name\":\"blackzig\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"headline\":\"Node em A\u00e7\u00e3o #3\",\"datePublished\":\"2020-05-18T16:14:09+00:00\",\"dateModified\":\"2020-05-18T16:14:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/\"},\"wordCount\":697,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#\\\/schema\\\/person\\\/687a6d17428a0f0e040aefbd858ebc1e\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\",\"articleSection\":[\"Node\"],\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/\",\"url\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/\",\"name\":\"Node em A\u00e7\u00e3o #3 - Viciados em Aprender\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/wp-content\\\/uploads\\\/2019\\\/07\\\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg\",\"datePublished\":\"2020-05-18T16:14:09+00:00\",\"dateModified\":\"2020-05-18T16:14:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\\\/\\\/micheladrianomedeiros.com.br\\\/blog\\\/node-em-acao-3\\\/#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-3\\\/#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 #3\"}]},{\"@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 #3 - 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-3\/","og_locale":"pt_PT","og_type":"article","og_title":"Node em A\u00e7\u00e3o #3","og_description":"Eu Devo Utilizar const ou let? Quando decido se utilizo const ou let, voc\u00ea precisa sempre utilizar const. Porque a maioria do sue c\u00f3digo ser\u00e1 uso de inst\u00e2ncias da pr\u00f3pria classe, objetos ou valores que n\u00e3o mudam, voc\u00ea deve utilizar const nessas situa\u00e7\u00f5es. Mesmo as inst\u00e2ncias de objetos que tenham propriedades que possam mudar pode [&hellip;]","og_url":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/","og_site_name":"Viciados em Aprender","article_published_time":"2020-05-18T16:14:09+00:00","article_modified_time":"2020-05-18T16:14:11+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-3\/#article","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/"},"author":{"name":"blackzig","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"headline":"Node em A\u00e7\u00e3o #3","datePublished":"2020-05-18T16:14:09+00:00","dateModified":"2020-05-18T16:14:11+00:00","mainEntityOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/"},"wordCount":697,"commentCount":0,"publisher":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#\/schema\/person\/687a6d17428a0f0e040aefbd858ebc1e"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","articleSection":["Node"],"inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/","url":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/","name":"Node em A\u00e7\u00e3o #3 - Viciados em Aprender","isPartOf":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/#primaryimage"},"image":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/#primaryimage"},"thumbnailUrl":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-content\/uploads\/2019\/07\/Node-JS-API-Development-for-Beginners-Udemy-free-course.jpg","datePublished":"2020-05-18T16:14:09+00:00","dateModified":"2020-05-18T16:14:11+00:00","breadcrumb":{"@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/micheladrianomedeiros.com.br\/blog\/node-em-acao-3\/#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-3\/#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 #3"}]},{"@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\/901","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=901"}],"version-history":[{"count":1,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/901\/revisions"}],"predecessor-version":[{"id":902,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/posts\/901\/revisions\/902"}],"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=901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/categories?post=901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/micheladrianomedeiros.com.br\/blog\/wp-json\/wp\/v2\/tags?post=901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}