<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>nest Archives - Hiago Silva Souza</title>
	<atom:link href="https://www.hiago.me/tag/nest/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.hiago.me/tag/nest/</link>
	<description></description>
	<lastBuildDate>Sun, 09 Sep 2018 17:07:52 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.5</generator>

<image>
	<url>https://www.hiago.me/wp-content/uploads/2019/01/cropped-icon-hiagus-2-32x32.png</url>
	<title>nest Archives - Hiago Silva Souza</title>
	<link>https://www.hiago.me/tag/nest/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">147457425</site>	<item>
		<title>NestJS: Uma estrutura NodeJS linda e trabalhada</title>
		<link>https://www.hiago.me/2018/05/13/nestjs-uma-estrutura-nodejs-linda-e-trabalhada/</link>
					<comments>https://www.hiago.me/2018/05/13/nestjs-uma-estrutura-nodejs-linda-e-trabalhada/#comments</comments>
		
		<dc:creator><![CDATA[Hiago Souza]]></dc:creator>
		<pubDate>Sun, 13 May 2018 15:27:56 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[NodeJS]]></category>
		<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[arquitetura]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[nest]]></category>
		<category><![CDATA[nestjs]]></category>
		<category><![CDATA[nodejs]]></category>
		<guid isPermaLink="false">https://www.hiago.me/?p=297</guid>

					<description><![CDATA[<p>Antes de falar do NestJS vamos lembrar que nos últimos anos, graças ao Node.js, o JavaScript se tornou a “língua franca” da web para aplicativos front e backend, dando origem a projetos incríveis como Angular, React e Vue, que melhoram a produtividade do desenvolvedor e permitem a construção de aplicativos frontend testáveis e extensíveis. No &#8230;</p>
<p>The post <a href="https://www.hiago.me/2018/05/13/nestjs-uma-estrutura-nodejs-linda-e-trabalhada/">NestJS: Uma estrutura NodeJS linda e trabalhada</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Antes de falar do NestJS vamos lembrar que nos últimos anos, graças ao Node.js, o JavaScript se tornou a “língua franca” da web para aplicativos front e backend, dando origem a projetos incríveis como Angular, React e Vue, que melhoram a produtividade do desenvolvedor e permitem a construção de</span> aplicativos frontend testáveis e extensíveis. <span class="">No entanto, no lado do servidor, embora existam muitas bibliotecas, assistentes e ferramentas excelentes para o Node, nenhum deles resolve efetivamente o problema principal &#8211; a arquitetura.</p>
<p>O Nest visa fornecer uma arquitetura de aplicativo pronta para uso, que permite a criação sem esforço de aplicativos altamente testáveis, escalonáveis, fracamente acoplados e de fácil manutenção.</p>
<h1>O que é?</h1>
<p>[wp_ad_camp_3]</p>
<p>O NestJS é uma estrutura para criar aplicativos do lado do servidor <a href="https://nodejs.org" target="_blank" rel="noopener">Node.js </a>de forma eficiente e escalável. Ele usa JavaScript moderno, é construído com o <a href="https://www.typescriptlang.org/" target="_blank" rel="noopener">TypeScript</a> (porém preserva a compatibilidade com JavaScript puro) e combina elementos de OOP (Programação Orientada a Objetos), FP (Programação Funcional) e FRP (Programação Reativa Funcional).</p>
<p>Por trás de tudo, o NestJS faz uso do Express, permitindo o uso fácil dos inúmeros plugins de terceiros disponíveis.</p>
<h1>O Desenvolvimento</h1>
<p>Para começar a trabalhar com o NestJS é bem simples. Basta você clonar o repositório de um projeto em branco no Github com o modelo que deseja trabalhar (TypeScript ou JavaScript).</p>
<p>Lembrando que para trabalhar com o NestJS você precisa de possuir instalado em seu ambiente o NodeJS.</p>
<p><strong>Criando um novo projeto usando JavaScript puro com o GIT:</strong></p>
<pre class="brush: plain; title: ; notranslate">
$ git clone https://github.com/nestjs/javascript-starter.git meu-primeiro-projeto
$ cd meu-primeiro-projeto
$ npm install
$ npm run start
</pre>
<p><strong>Criando um novo projeto usando TypeScript com o GIT:</strong></p>
<pre class="brush: plain; title: ; notranslate">
$ git clone https://github.com/nestjs/typescript-starter.git meu-primeiro-projeto
$ cd meu-primeiro-projeto
$ npm install
$ npm run start
</pre>
<p><strong>Criando um projeto do zero usando NPM:</strong></p>
<pre class="brush: plain; title: ; notranslate">

$ npm i --save @nestjs/core @nestjs/common @nestjs/microservices @nestjs/websockets @nestjs/testing reflect-metadata rxjs

</pre>
<p>&nbsp;</p>
<h1>Estrutura</h1>
<p>[wp_ad_camp_2]</p>
<p>O NestJS conta com uma estrutura bem conhecida pelos desenvolvedores Java/.NET  ele tem implementado de forma bem simples recursos que são muito utilizados.</p>
<p>Segue abaixo a lista de recursos que o NestJS propõe em sua estrutura atual.</p>
<h2>Controllers</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1">A camada de Controllers é responsável por manipular solicitações recebidas e retornar uma resposta ao cliente, e todo a parte de &#8220;Rota&#8221; já é feito nessa mesma camada.</span></p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-300 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Controllers_1.png" alt="Imagem mostrando os controllers do NestJS" width="970" height="420" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Controllers_1.png 970w, https://www.hiago.me/wp-content/uploads/2018/05/Controllers_1-300x130.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Controllers_1-768x333.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></p>
<h2>Providers</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1">Quase tudo pode ser considerado como um provedor &#8211; provider – service, repository, factory, helper e assim por diante. Todos eles podem injetar dependências através de construtor (Dependency Injection), ou seja, eles podem criar vários relacionamentos entre si. Mas, na verdade, um provedor nada mais é do que apenas uma classe simples anotada com um decorator @Injectable().</span><span id="result_box" class="" lang="pt" tabindex="-1"><span class=""><br />
</span></span></p>
<p><img decoding="async" class="alignnone wp-image-301 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Providers_1.png" alt="Imagem mostrando os providers do NestJS" width="970" height="518" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Providers_1.png 970w, https://www.hiago.me/wp-content/uploads/2018/05/Providers_1-300x160.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Providers_1-768x410.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></p>
<h2>Modules</h2>
<div id="gt-res-content">
<div id="gt-res-dir-ctr" class="trans-verified-button-small" dir="ltr"><span id="result_box" class="" lang="pt" tabindex="-1"><span class="">Um módulo é uma classe que faz uso de um decorator @Module().</span> <span class="">O decorator @Module() fornece metadados, que o Nest usa para organizar a estrutura da aplicação.</span></span></div>
<div dir="ltr"><img decoding="async" class="alignnone wp-image-302 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Modules_1.png" alt="Imagem mostrando os modules do NestJS" width="970" height="526" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Modules_1.png 970w, https://www.hiago.me/wp-content/uploads/2018/05/Modules_1-300x163.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Modules_1-768x416.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></div>
<h2 dir="ltr">Middlewares</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1">O middleware é uma função que é chamada antes do manipulador de rota. As funções de middleware têm acesso aos objetos de solicitação e resposta, e a próxima função de middleware no ciclo de solicitação-resposta do aplicativo. <span class="">A próxima função de middleware é geralmente denotada por uma variável denominada next.</span></span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-303 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Middlewares_1.png" alt="Imagem mostrando os middlewares do NestJS" width="970" height="220" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Middlewares_1.png 970w, https://www.hiago.me/wp-content/uploads/2018/05/Middlewares_1-300x68.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Middlewares_1-768x174.png 768w" sizes="(max-width: 970px) 100vw, 970px" /></p>
<h2>Exception filters</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1">A camada de exceções interna é responsável por manipular todas as exceções lançadas em todo o seu aplicativo. Quando uma exceção não tratada é detectada, o usuário final receberá uma resposta adequada.</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-304 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Filter_1.png" alt="Imagem mostrando os filters do NestJS" width="833" height="474" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Filter_1.png 833w, https://www.hiago.me/wp-content/uploads/2018/05/Filter_1-300x171.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Filter_1-768x437.png 768w" sizes="(max-width: 833px) 100vw, 833px" /></p>
<h2>Pipes</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1">Um pipe é uma classe anotada com o decorator @Injectable(). O pipe deve implementar a interface PipeTransform.</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-305 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Pipe_1.png" alt="Imagem mostrando os pipes do NestJS" width="833" height="474" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Pipe_1.png 833w, https://www.hiago.me/wp-content/uploads/2018/05/Pipe_1-300x171.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Pipe_1-768x437.png 768w" sizes="(max-width: 833px) 100vw, 833px" /></p>
<h2>Guards</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1"><span class="">Um guarda é uma classe anotada com o decorator @Injectable().</span> O guarda deve implementar a interface do CanActivate.</span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-306 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Guards_1.png" alt="Imagem mostrando os guards do NestJS" width="906" height="269" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Guards_1.png 906w, https://www.hiago.me/wp-content/uploads/2018/05/Guards_1-300x89.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Guards_1-768x228.png 768w" sizes="(max-width: 906px) 100vw, 906px" /></p>
<h2>Interceptors</h2>
<p><span id="result_box" class="" lang="pt" tabindex="-1"><span class="">Um interceptor é uma classe anotada com o decorator @Injectable().</span> <span class="">O interceptor deve implementar a interface NestInterceptor.</span></span></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-307 size-full" src="https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1.png" alt="Imagem mostrando os interceptors do NestJS" width="1800" height="850" srcset="https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1.png 1800w, https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1-300x142.png 300w, https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1-768x363.png 768w, https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1-1024x484.png 1024w, https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1-520x245.png 520w, https://www.hiago.me/wp-content/uploads/2018/05/Interceptors_1-720x340.png 720w" sizes="(max-width: 1800px) 100vw, 1800px" /></p>
<h1>Conclusão</h1>
<p>[wp_ad_camp_1]</p>
<p>O NestJS é uma ótima alternativa de manter seu projeto organizado e escalável. Além de todos os seus recursos conforme apresentado acima ele também oferece suporte a diversos tipos de implementações não citadas como WebSockets, GraphQL e por ai vai.</p>
<p>Vamos lá, não vamos perder tempo! Entre agora na documentação oficial do Nest e deixe sua imaginação trabalhar.</p>
<p><a href="https://www.hiago.me/category/node-js/">+ posts sobre NodeJS</a></p>
</div>
<p>The post <a href="https://www.hiago.me/2018/05/13/nestjs-uma-estrutura-nodejs-linda-e-trabalhada/">NestJS: Uma estrutura NodeJS linda e trabalhada</a> appeared first on <a href="https://www.hiago.me">Hiago Silva Souza</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.hiago.me/2018/05/13/nestjs-uma-estrutura-nodejs-linda-e-trabalhada/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">297</post-id>	</item>
	</channel>
</rss>
