{"componentChunkName":"component---src-templates-blog-post-js","path":"/iniciando-um-pequeno-projeto-em-node-js/","result":{"data":{"site":{"siteMetadata":{"title":"Blog"}},"markdownRemark":{"id":"dc758cfe-b4e0-53bf-a20a-47b0b9ca8717","excerpt":"Para seguir o tutorial abaixo é necessário ter o Node.js instalado e algum terminal disponível além de um editor de textos que pode ser o VS Code. Vamos começar…","html":"<p><em>Para seguir o tutorial abaixo é necessário ter o Node.js instalado e algum terminal disponível além de um editor de textos que pode ser o VS Code.</em></p>\n<p>Vamos começar abrindo o terminal e criar uma pasta com o nome fundamentos-node-js e em seguida acessá-la.</p>\n<p><code class=\"language-text\">m﻿kdir fundamentos-node-js</code></p>\n<p><code class=\"language-text\">c﻿d fundamentos-node-js</code></p>\n<p>Agora já dentro da pasta do projeto vamos rodar um comando que irá inicializar o projeto.</p>\n<p><code class=\"language-text\">n﻿pm init -y</code></p>\n<p>O﻿ comando acima irá criar o arquivo package.json que é o arquivo que conterá as configurações do nosso projeto, como por exemplo dependências instaladas e scripts.</p>\n<p>Nesse projeto vamos utilizar o Express que é um framework para aplicações web do Node.js que irá nos auxiliar em diversas situações, como por exemplo na criação de um servidor e gerenciamento de rotas, que é o que vamos fazer. Então para instalar o Express vamos rodar o comando abaixo, ainda dentro da pasta do projeto.</p>\n<p><code class=\"language-text\">n﻿pm install express</code></p>\n<p>A﻿gora podemos abrir o VS Code e abrir a pasta do projeto. </p>\n<p><em>Possivelmente pelo próprio terminal, dentro da pasta do projeto, você conseguirá abrir o VS Code já dentro da pasta do projeto com o comando</em> <code class=\"language-text\">code .</code></p>\n<p>V﻿ocê irá observar que agora além do arquivo package.json temos também o package-lock.json e a pasta node<em>modules. O package-lock.json é apenas um arquivo de mapeamento do package.json e não devemos mexer nele. A pasta node</em>modules é a que contém as dependências instaladas que no momento tem todas as dependências que o Express precisa para executar.</p>\n<p>V﻿amos começar criando uma pasta src e dentro dessa pasta vamos criar o arquivo index.js. A pasta src é criada apenas porque é uma boa prática manter nosso código dentro de uma pasta source, no caso src, e mantendo fora arquivos de configuração, dependências, etc.</p>\n<p>A﻿gora dentro de index.js vamos escrever o seguinte código e salvar em seguida.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> express <span class=\"token operator\">=</span> <span class=\"token function\">require</span><span class=\"token punctuation\">(</span><span class=\"token string\">'express'</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">const</span> app <span class=\"token operator\">=</span> <span class=\"token function\">express</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n\napp<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token string\">'/'</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">(</span><span class=\"token parameter\">request<span class=\"token punctuation\">,</span> response</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  response<span class=\"token punctuation\">.</span><span class=\"token function\">json</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span> message<span class=\"token operator\">:</span> <span class=\"token string\">'it works'</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n\napp<span class=\"token punctuation\">.</span><span class=\"token function\">listen</span><span class=\"token punctuation\">(</span><span class=\"token number\">3333</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>O﻿ que fizemos no código?</p>\n<ol>\n<li>C﻿riamos uma constante express que irá receber todo o framework express através do require()</li>\n<li>\n<p>Criamos uma constante app que recebe a função express()</p>\n<p>O express() é uma função que o Express disponibiliza para facilitar a execução de diversas funcionalidades, como por exemplo o gerencimento de rotas que fizemos. Isso significa que a partir de agora tudo o que formos executar irá partir de app.</p>\n</li>\n<li>\n<p>I﻿nvocamos o método get() a partir de app</p>\n<p>O método get() é um método que é utilizado para obter uma resposta, que no nosso caso é uma simples mensagem. O método get() recebe dois argumentos: o primeiro é a rota que no nosso exemplo é a rota ’/’ que é a rota raiz. Isso significa que ao acessarmos no navegador localhost:3333/ será utilizado esse método que estamos criando. O segundo parâmetro do get() é uma função de callback. Essa função recebe dois argumentos: request e response. O request é o que vem na requisição podendo ser um header param, query param, route param ou body param. Não faremos nada com o request nesse exemplo. O response é a resposta que daremos a quem fez a requisição e no nosso exemplo usamos o método json() com um objeto como argumento. Essa é a resposta que quem fez a requisição verá.</p>\n</li>\n<li>\n<p>I﻿nvocamos o método listen() a partir de app</p>\n<p>Enviamos como argumento do método listen() a porta que nossa aplicação irá utilizar. No exemplos utilizamos a porta 3333. Isso significa que nossa aplicação será acessada a partir do endereço localhost:3333</p>\n</li>\n</ol>\n<p>E﻿ntão agora podemos rodar nossa aplicação com o seguinte comando</p>\n<p><code class=\"language-text\">n﻿ode src/index.js</code></p>\n<p>O﻿ terminal não dará nenhuma resposta, porque também não configuramos nenhuma, ele apenas irá ficar parado. Então podemos abrir o navegador e acessar o endereço localhost:3333 para vermos a resposta.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 293px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/650313b3e46bd84d3962aa905d5de496/3cf3e/print.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 50%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABCklEQVQoz61R226EIBTk/z/MT2hiazY+2ArorggCVsUph9aNcd2Hpp1kRDKHOTfWti2KokBVVdBag3MOKSWstYld18E5B2NM0ru+hzb6fidtHEd47xNZ0zTIsiyZkpjneTKf5xnTNEEIgbDM+KhK5K9veIlxZXkBFcK5wLws2IP1MSNRKZWyDsOAwQ7pdNbBO58SEW2k99//W0VHsnVdfy4jzkD6GcIaknZkMqTWqMU5nnVdg8bwHtumWS6xpatpoJ3CzdwgFYeyCs/A6EOPyHANATLObFuUEDIFDaOB8X00vKLREu7T3at/qJAE2hJt9Dd4Ngq2F/aZQthmdF7JPv6h5WPQX8Dwz/gCa8ANttTXS0YAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"Print de mensagem de resposta da aplicação\"\n        title=\"Mensagem de resposta da nossa aplicação\"\n        src=\"/static/650313b3e46bd84d3962aa905d5de496/3cf3e/print.png\"\n        srcset=\"/static/650313b3e46bd84d3962aa905d5de496/c26ae/print.png 158w,\n/static/650313b3e46bd84d3962aa905d5de496/3cf3e/print.png 293w\"\n        sizes=\"(max-width: 293px) 100vw, 293px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n  </a>\n    </span></p>","frontmatter":{"title":"Iniciando um pequeno projeto em Node.js","date":"December 09, 2022","description":"Vamos iniciar um pequeno projeto apenas com o básico para estudo"}},"previous":{"fields":{"slug":"/métodos-de-requisição/"},"frontmatter":{"title":"Métodos de Requisição"}},"next":{"fields":{"slug":"/utilizando-o-nodemon-numa-aplicação-node-js/"},"frontmatter":{"title":"Utilizando o Nodemon numa aplicação Node.js"}}},"pageContext":{"id":"dc758cfe-b4e0-53bf-a20a-47b0b9ca8717","previousPostId":"d5934ab5-0e9b-5335-a2e0-b649fc838bc6","nextPostId":"2baa41b5-444b-5d41-90dd-e9dafce35de1"}},"staticQueryHashes":["2841359383","3257411868"]}