MEAN STACK – UTILIZANDO O EXPRESS PARA CONFIGURAR AS ROTAS DO APP.


https://bognarjunior.wordpress.com/

Para começarmos a desenvolver nosso projeto temos que instalar o express.

Navegamos até a pasta raiz do projeto e digitamos o seguinte código.

npm install express --save

Após feita a instalação criaremos uma nova pasta na raiz do nosso projeto chamada config e dentro dela criaremos um arquivo chamado express.js

Precisaremos instalar também outros dois módulos do nodejs, o consign e o body-parser

npm install consign --save
npm install body-parser --save

Lembre-se de fazer dentro da raiz e não da pasta config.

Com estes módulos instalados começaremos agora a programar o arquivo express.js.

var express = require('express');
var consign = require('consign');
var bodyParser = require('body-parser');

var app = express();

app.use(express.static('./public'));
app.use(bodyParser.json());

consign({cwd: 'app'})
    .include('api')
    .then('routes')
    .into(app);

module.exports = app;

O arquivo é bem simples, apenas importamos os módulos e vamos utilizar algumas funções do express, com a static que indica onde estarão nossas views e estamos utilizando o bodyParser para falar que nosso formato padrão de dados é o json.

O consign é bem interessante, pois ele nos poupa muito código. Imagine que você tenha 300 módulos e você precisa utilizar todos em sua aplicação, você teria que requerer um por um, ficando mais ou menos assim.

var modulo1 = require('modulo1');
var modulo2 = require('modulo2');
var modulo3 = require('modulo3');
var moduloN = require('moduloN');
..........
var modulo300 = require('modulo300');

Teríamos uma cadeia enorme de requires.

Entendendo o consign.

A primeira linha indica qual será nosso diretório padrão.

consign({cwd: 'app'})

A próxima indica que devemos incluir mais um diretório

.include('api')

Mas este não é o único diretório, também devemos incluir outro, no nosso caso.

.then('routes')

E por fim indica que posso receber um parâmetro nos módulos que estão dentro destes diretórios.

.into(app);

Fique atento

Os diretórios tem que estar na ordem em que serão utilizados, pois o consign os interpreta como uma fila.

Se tivéssemos outros diretórios bastaria adicionar mais

.then('outro diretório')
.then('mais um')
.then('outro ainda')

Todos os arquivos dentro dos diretórios seriam carregados.

Reestruturando as pastas.

Se prestarmos atenção precisaremos criar outra pasta, agora chamada app e dentro dela mais duas, uma chamada api e outra routes.

app/routes/lista.js

Dentro de app/routes criaremos um arquivo chamado lista.js, que será responsável por fazer as rotas da nossa lista.

module.exports = function(app) {
 
    var api = app.api.lista;

    app.route('/lista')
        .get(api.lista)
        .post(api.adiciona);

    app.route('/lista/:id')
       .get(api.buscaPorId)
       .delete(api.removePorId)
       .put(api.atualiza);
};

Este arquivo é de fácil compreensão, pois ele apenas indica que função devemos tomar quando recebemos uma determinada rota e um determinado verbo HTML.

var api = app.api.lista;

Na linha  acima estamos recebendo um arquivo lista.js que está dentro de app/api, ainda não criamos este arquivo, mas será criado em breve.

app.route('/lista')
    .get(api.lista)
    .post(api.adiciona);

Esta parte do código diz que se a rota for “/lista” e o verbo HTML for o get, então chama a função lista que está dentro do lista.js, se o verbo for o post então chama a função adiciona.

app/api/lista.js

 

Agora criaremos o lista.js dentro do app/api, que será responsável por gravar no banco, funcionalidade que implementaremos em outro post.

Criaremos todas as funções, para gravar, deletar, listar e fazer update no banco.

var api = {};

api.lista = function(req, res) {

    console.log("req.params", req.params);
    res.send("Entrou na api.lista");
};

api.buscaPorId = function(req, res) {

    console.log("req.params", req.params);
    res.send("Entrou na api.buscaPorId");
};

api.removePorId = function(req, res) {

    console.log("req.params", req.params.id);
    res.send("Entrou na api.removePorId");
};

api.adiciona = function(req, res) {

    console.log("req.params", req.params);
    res.send("Entrou na api.adiciona");
};

api.atualiza = function(req, res) {

    console.log("req.params", req.params.id);
    res.send("Entrou na api.atualiza");
};

module.exports = api;

 

Este arquivo até aqui não tem segredo, pois as funções ainda não estão executando nenhuma interação com o banco de dados, apenas imprimindo um console no terminal e retornando uma resposta para nosso HTML.

app.js

Dentro da raiz do projeto temos que configurar o arquivo que inicializará nosso servidor,.

var http = require('http');
var app = require('./config/express');
var port = 3000;

http.createServer(app).listen(port, function() {
    console.log("Servidor iniciadona porta " + port);
});

Este é o mais básico dos arquivos, pois neste blog já criamos e inicializamos vários servidores, sendo assim não há mistério.

Caso tenha alguma dúvida faça download o  código no link abaixo e bons estudos

Faça download do código aqui!

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s