Backend com Node Js Express

Para quem não conhece, Express é um modulo Node Js para Backend. Muito usado para API Restfull. Funciona muito bem com Mong Db. 

Antes de começar devemos ter instalado o Node Js. Pode dá uma olhada nesse post que tem mais detalhes sobre a instalação do Node js.

Com o Node js instalado, vamos abrir o prompt de comando, navegar até uma pasta de sua preferência e executar o comando:

 npm install express-generator -g

Esse comando instala o express generator. Vamos usá-lo para gerar nosso projeto express. Para isso, basta executar esse outro comando:

 express proj_express

Ponto! agora nosso projeto está criado com o nome proj_express (pode ser outro nome de sua preferência).

Agora basta entrar na pasta do projeto e execuar npm install para instalar as dependências. Vamos vazer isso em um único comando:

 cd proj_express && npm install

Feito isso, basta executar esse outro comando para subir o servidor:

 npm start

Agora vamos acessar localhost:3000 e ver o resultado:

Imagem

Beleza! tudo certo. Agora vamos entender a estrutura do projeto. Primeiro vamos ver por que ele subiu com comando npm start e por que na porta 3000.

Para isso vamos abrir o arquivo package.json. Na parte de scripts temos:

 "scripts": {
     "start": "node ./bin/www"
   },

Isso significa que quando rodamos npm start, estamos rodando o comando esse comando start que por sua vez aponta para o arquivo ./bin/www (sem extensão). Na lina 15 temos a definição da porta:

 var port = normalizePort(process.env.PORT || '3000');

Outro detalhe importante, temos na linha 7:

 var app = require('../app');

Isso significa que é carregado o arquivo app.js que está um nível acima da pasta bin. Observando a linha 15 do arquivo app.js temos:

 app.set('view engine', 'jade');

Essa linha indica que o jade é usado para view engine. Navegando pela pasta view. temos o arquivo index.jade:

 extends layout
 
 block content
   h1= title
   p Welcome to #{title}

Fica fácil de entender que esse é um arquivo view(html) que foi exibido na nossa página web quando acessamos localhost:3000

Percebe-ce também que é mostrada um variável #{title} na linha 5. Se observar bem, é possível perceber que o conteúdo dessa variável é definida no arquivo routes/index.js:

 router.get('/', function(req, res, next) {
   res.render('index', { title: 'Express' });
 });

Para saber mais sobre jade, segue a documentação completa: http://jade-lang.com/

Se alterar o valor da variável, o resultado só aparece depois que parar o serviço e iniciar o servidor novamente.

Para que as mudanças no código reflitam sem precisar reniciar o servidor, precisamos instalar o nodemon:

 npm install nodemon -g

Agora no arquivo package.json alterar o comando node para nodemon:

 "scripts": {
     "start": "nodemon ./bin/www"
   },
 

Se não gostar no jade, existem outras view engines como ejs. 

Para alterar para ejs basta ir no arquivo app.js, alterar de jade para ejs:

 app.set('view engine', 'ejs');

Depois remover o jade:

 npm remove jade --save

e instalar o ejs:

 npm install ejs --save

Obviamente, precisamos alterar o index.jade para os padrões ejs. Confira a documentação completa: http://www.embeddedjs.com/

Comentários

 

Quem Sou

Graduado em ADS (Análise e desenvolvimento de sistemas).

Não sou "devoto" de nenhuma linguagem de programação. Procuro aproveitar o melhor de cada uma de acordo com a necessidade do projeto. Prezo por uma arquitetura bem feita, código limpo, puro e simples! 

anuncio atendente