{"id":167,"date":"2016-05-09T15:49:57","date_gmt":"2016-05-09T15:49:57","guid":{"rendered":"http:\/\/curioso.digital\/?p=167"},"modified":"2016-05-09T15:49:57","modified_gmt":"2016-05-09T15:49:57","slug":"desenvolvendo-uma-aplicacao-com-node-js-e-angularjs-parte-3","status":"publish","type":"post","link":"https:\/\/curiosodigital.com.br\/?p=167","title":{"rendered":"Desenvolvendo uma aplica\u00e7\u00e3o com Node.js e AngularJS \u2013 parte 3"},"content":{"rendered":"<p style=\"text-align:justify;\">Sauda\u00e7\u00f5es Leitores, dando continuidade ao relato da cria\u00e7\u00e3o da aplica\u00e7\u00e3o com Node.js e AngualarJS, este post vou escrever algumas de minhas descobertas. Uma delas \u00e9 sobre o funcionamento b\u00e1sico do node.js que est\u00e1 bem explicado <a href=\"http:\/\/www.obomprogramador.com\/2014\/04\/estressando-o-nodejs.html\">neste<\/a> artigo que encontrei, ele traz uma luz sobre como ele pode ser executado em uma \u00fanica thread de eventos e ao mesmo tempo n\u00e3o ser bloqueante (acessos de I\/O e redes).<\/p>\n<p style=\"text-align:justify;\">Tamb\u00e9m estive lendo que para utilizar o Node.js de forma mais perform\u00e1tica poss\u00edvel \u00e9 recomend\u00e1vel evitar o uso de frameworks, mas n\u00e3o \u00e9 o caso da aplica\u00e7\u00e3o j\u00e1 que ela n\u00e3o \u00e9 cr\u00edtica e a qualquer momento podemos fazer uma refatora\u00e7\u00e3o do c\u00f3digo. Sendo assim decidi seguir as recomenda\u00e7\u00f5es do livro \u201cNode.js Aplica\u00e7\u00f5es web real-time com Node.js\u201d e utilizar o framework Express. Encontrei um artigo com uma s\u00e9rie de dicas para manter as aplica\u00e7\u00f5es criadas com Express perform\u00e1ticas neste <a href=\"http:\/\/expressjs.com\/pt-br\/advanced\/best-practice-performance.html\">link<\/a>.<\/p>\n<p style=\"text-align:justify;\"><strong>UPDATE(04\/07\/2016)<\/strong>: O nome do projeto ser\u00e1 \u201cAmanhecer\u201d (o nome me pareceu legal de acordo com os objetivos propostos) e criei uma \u00fanica aplica\u00e7\u00e3o no Elcipse que chamei de\u00a0\u201cAmanhecerServer\u201d e ter\u00e1 a parte servidor em Node.js e a interface em AngularJS.<\/p>\n<p style=\"text-align:justify;\">Vamos come\u00e7ar pelo server ent\u00e3o, criei o projeto no eclipse conforme este <a href=\"http:\/\/techprd.com\/how-to-setup-node-js-project-in-eclipse\/\">link<\/a>, foram necess\u00e1rias algumas adapta\u00e7\u00f5es pois as vers\u00f5es Nodeclipse que instalei e a do artigo s\u00e3o diferentes, importante escrever que \u00e9 necess\u00e1rio criar a aplica\u00e7\u00e3o utilizando a Template Engine \u201cejs\u201d (um pouco sobre ejs neste <a href=\"http:\/\/www.embeddedjs.com\/\">link<\/a>). Se ao rodar a aplica\u00e7\u00e3o o leitor descobrir que o Express n\u00e3o est\u00e1 instalado no diret\u00f3rio da aplica\u00e7\u00e3o, no <a href=\"http:\/\/expressjs.com\/pt-br\/starter\/installing.html\">site do Express<\/a> possui um passo a passo da instala\u00e7\u00e3o, mas n\u00e3o precisa executar todas as fases pois a aplica\u00e7\u00e3o j\u00e1 est\u00e1 criada, ent\u00e3o no shell (ou no prompt do DOS) v\u00e1 at\u00e9 a raiz da aplica\u00e7\u00e3o e digite o comando \u201cnpm install express &#8211;save\u201d e ele deve criar uma pasta \u201cnode_modules\u201d com diversos m\u00f3dulos nele (incluindo o Express).<\/p>\n<p style=\"text-align:justify;\">Ao rodar a aplica\u00e7\u00e3o no Eclipse apareceu no console do Eclipse a mensagem \u201cExpress server listening on port 3000\u201d indicando que o servidor estava on-line na porta 3000. E ao executar a aplica\u00e7\u00e3o no navegador no endere\u00e7o \u201chttp:\/\/localhost:3000\u201d aparecer\u00e1 um site com a mensagem \u201cWelcome to Express\u201d.<\/p>\n<p style=\"text-align:justify;\">No pr\u00f3ximo post testaremos a nossa aplica\u00e7\u00e3o com uma p\u00e1gina AngularJS e veremos como criar o nosso primeiro script Rest. At\u00e9 a pr\u00f3xima.<\/p>\n<p>Siga-me no Twitter: <a class=\"DashboardProfileCard-screennameLink u-linkComplex u-linkClean\" href=\"https:\/\/twitter.com\/curioso_dgtal\">@<span class=\"u-linkComplex-target\">curioso_dgtal<\/span><\/a><\/p>\n<p>Participe do nosso <a href=\"https:\/\/groups.google.com\/forum\/#%21forum\/curiosodigital\">grupo no Google<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sauda\u00e7\u00f5es Leitores, dando continuidade ao relato da cria\u00e7\u00e3o da aplica\u00e7\u00e3o com Node.js e AngualarJS, este post vou escrever algumas de minhas descobertas. Uma delas \u00e9 sobre o funcionamento b\u00e1sico do node.js que est\u00e1 bem explicado neste artigo que encontrei, ele traz uma luz sobre como ele pode ser executado em uma \u00fanica thread de eventos&hellip;<\/p>\n","protected":false},"author":2,"featured_media":185,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[8],"tags":[15,33,40],"_links":{"self":[{"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=\/wp\/v2\/posts\/167"}],"collection":[{"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=167"}],"version-history":[{"count":0,"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=\/wp\/v2\/posts\/167\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=\/"}],"wp:attachment":[{"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/curiosodigital.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}