Formação Oracle DBA Completa


O que são middlewares em NodeJS?

O que são middlewares em NodeJS?

26 de setembro de 2017 1 Por Ramos de Souza Janones
Powered by Rock Convert

Middleware é todo o tipo de função que está entre um pedido HTTP e a resposta final que o servidor envia de volta para o cliente.

Por exemplo, usando Express.js, um pedido GET simples teria esta código:

var app = express();
app.get('/', function(req, res, next) {
  res.send('Hello World!');
});

 

Pode-se fazer um log do tipo de request e do url de um request utilizando este middleware simples:

app.use(function(req, res, next) {
  console.log(req.method, req.url);
  next();
});

 

Curso completo de Games, inclusive Realidade Aumentada.Powered by Rock Convert

A função middleware tem 3 parametros, pedido, resposta e callback. Podes ter n middleware a processar um pedido HTTP, encadeados. Quando um middleware acaba de processar coloca-se no final do código next();, invocando assim a callback e o código continua a correr para o proximo middleware ou resposta final.

O middleware é portanto uma funcionalidade, funções que executam processos intermédios. Os exemplos mais comuns são interagir com a BD, ir buscar ficheiros estáticos, tratar de erros ou redirecionamentos.

Um exepmplo de encadeamento de “middlewares” poderia ser assim:

var express = require('express'), // chamar a app e dar configurações minimas
    app = express.createServer(),                                                                                                                                                 
    port = 1337;

function middleHandler(req, res, next) {
    // tratar erros
    var err = req.body.foo == null;
    if (!err) next();
    else res.send("a variavel foo não tem dados!");
}

app.use(function (req, res, next) {
    // escrever na BD
    console.log(JSON.stringify(req.body));                                                                                                             
    next();
});

app.use(function (req, res, next) {
    // outros processos                                                                                                            
    next();
});

app.get('/', middleHandler, function (req, res) {
    console.log(ultimo passo);
    res.send("Obrigado pelo seu registo!");
});

app.listen(port);  // iniciar o servidor
console.log('start server');

Repara que neste exemplo em cima o app.get tem um middleware como argumento. Podes usar middleware encadeados também dessa maneira. Aqui fica um exemplo real:

app.get('/', githubEvents, twitter, getLatestBlog, function(req, res){
    res.render('index', {
        title: 'MooTools',
        site: 'mootools',
        lastBlogPost: res.locals.lastBlogPost,
        tweetFeed: res.locals.twitter
    });
});

Este é um exemplo que usamos no site do MooTools para carregar os post do Twitter, Blog e Github para carregar o res com as variáveis que a página precisa para ser processada.

Nota: Se usare app.use esse middleware vai ser chamado em todos os request. Se quiseres ser mais específico para por exemplo requests GET podes usar como nos exemplos em cima app.get('caminho', middleware1, middlware2, etc, function(){ ...

Sugestão de leitura

Siga os bons!

Ramos de Souza Janones

Janones, é um empreendedor brasileiro apaixonado por empreendedorismo e tecnologia. Ao longo dos anos trabalhando com o desenvolvimento de softwares desktop desde a linguagem Clipper, passando pelo Delphi e atualmente com Java.

Optou pela formação de Publicidade e Marketing por sua segunda empresa de tecnologia ter participado do "boom" da internet nos anos 90 e na procura de melhorar seus conhecimentos em negócios.

Em razão da principal formação e profundos conhecimentos em programação e banco de dados, é capaz de realizar o desenvolvimento de aplicativos web, desktop e mobile com maior criatividade e inovação que profissionais de desenvolvimento com uma formação única e mais especifica, dedicada somente ao desenvolvimento de softwares.

Com toda sua experiência com empresas de software, sua formação e paixão por negócios escreveu o livro "Marketing para Empresas e Profissionais de Software", publicado pela editora carioca Ciência Moderna em 2012. Além de outros livros sobre programação.

Últimos posts por Ramos de Souza Janones (exibir todos)




Frontend Do Zero Ao Profissional