Tutorial Node.js Express FrameWork – Aprenda em 10 minutos

Neste tutorial, estudaremos o framework Express. Essa estrutura é construída de forma que atue como uma estrutura de aplicativo da web Node.js mínima e flexível, fornecendo um conjunto robusto de recursos para a construção de aplicativos da web híbridos, de uma ou várias páginas.

O que é Express.js?

Express.js é uma estrutura de servidor de aplicativos da web Node js, projetada especificamente para a construção de aplicativos da web híbridos, de página única e de várias páginas.

Tornou-se a estrutura de servidor padrão para node.js. Express é a parte backend de algo conhecido como pilha MEAN.

O MEAN é gratuito e de código aberto JavaScript pilha de software para construção de sites e aplicações web dinâmicos que possui os seguintes componentes;

1) MongoDB – O banco de dados NoSQL padrão

2) Expresso.js – A estrutura padrão de aplicativos da web

3) Angular.js - O JavaFramework Script MVC usado para aplicações web

4) Node.js – Estrutura usada para aplicativos escalonáveis ​​do lado do servidor e de rede.

A estrutura Express.js torna muito fácil desenvolver um aplicativo que pode ser usado para lidar com vários tipos de solicitações, como solicitações GET, PUT e POST e DELETE.

Instalando e usando o Express

Express é instalado através do Node Package Manager. Isso pode ser feito executando a seguinte linha na linha de comando

npm instalar expresso

O comando acima solicita ao gerenciador de pacotes Node que baixe os módulos expressos necessários e os instale de acordo.

Vamos usar nosso framework Express recém-instalado e criar um aplicativo simples “Hello World”.

Nosso aplicativo criará um módulo de servidor simples que escutará na porta número 3000. Em nosso exemplo, se uma solicitação for feita através do navegador neste número de porta, o aplicativo do servidor enviará uma resposta 'Hello' World' ao cliente .

Instalando e usando o Express

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

Explicação do código:

  1. Em nossa primeira linha de código, estamos usando a função require para incluir o “módulo expresso”.
  2. Antes de começarmos a usar o módulo express, precisamos transformá-lo em um objeto.
  3. Aqui estamos criando uma função de retorno de chamada. Esta função será chamada sempre que alguém navegar até a raiz da nossa aplicação web, que é http://localhost:3000 . A função de retorno de chamada será usada para enviar a string 'Hello World' para a página web.
  4. Na função de retorno de chamada, estamos enviando a string “Hello World” de volta ao cliente. O parâmetro 'res' é usado para enviar conteúdo de volta para a página web. Este parâmetro 'res' é fornecido pelo módulo 'request' para permitir o envio de conteúdo de volta para a página da web.
  5. Em seguida, estamos usando a função listen to para fazer com que nosso aplicativo de servidor ouça as solicitações do cliente na porta nº 3000. Você pode especificar qualquer porta disponível aqui.

Se o comando for executado com sucesso, a seguinte saída será mostrada quando você executar seu código no navegador.

Saída:

Express.js

Da saída,

  • Você pode ver claramente que se navegarmos até a URL do host local na porta 3000, você verá a string 'Hello World' exibida na página.
  • Como em nosso código mencionamos especificamente que o servidor escuta na porta 3000, podemos visualizar a saída ao navegar para este URL.

O que são rotas?

O roteamento determina a maneira como um aplicativo responde a uma solicitação do cliente para um determinado terminal.

Por exemplo, um cliente pode fazer uma solicitação http GET, POST, PUT ou DELETE para vários URLs, como os mostrados abaixo;

http://localhost:3000/Books
http://localhost:3000/Students

No exemplo acima,

  • Se uma solicitação GET for feita para o primeiro URL, o ideal é que a resposta seja uma lista de livros.
  • Se a solicitação GET for feita para o segundo URL, o ideal é que a resposta seja uma lista de Alunos.
  • Assim, com base na URL acessada, uma funcionalidade diferente no servidor web será invocada e, consequentemente, a resposta será enviada ao cliente. Este é o conceito de roteamento.

Cada rota pode ter uma ou mais funções de tratamento, que são executadas quando a rota é correspondida.

A sintaxe geral para uma rota é mostrada abaixo

app.METHOD(PATH, HANDLER)

Em que,

1) app é uma instância do módulo expresso

2) METHOD é um método de solicitação HTTP (GET, POST, PUT ou DELETE)

3) PATH é um caminho no servidor.

4) HANDLER é a função executada quando a rota é correspondida.

Vejamos um exemplo de como podemos implementar rotas no expresso. Nosso exemplo criará 3 rotas como

  1. Uma rota /Node que exibirá a string “Tutorial on Node” se esta rota for acessada
  2. Uma rota /Angular que exibirá a string “Tutorial on Angular” se esta rota for acessada
  3. Uma rota padrão / que exibirá a string “Bem-vindo aos tutoriais do Guru99”.

Nosso código básico permanecerá o mesmo dos exemplos anteriores. O trecho abaixo é um complemento para mostrar como o roteamento é implementado.

Rotas em Node.js

var express = require('express');
var app = express();
app.route('/Node').get(function(req,res)
{
    res.send("Tutorial on Node");
});
app.route('/Angular').get(function(req,res)
{
    res.send("Tutorial on Angular");
});
app.get('/',function(req,res){
    res.send('Welcome to Guru99 Tutorials');
}));

Explicação do código:

  1. Aqui estamos definindo uma rota se a URL http://localhost:3000/Node está selecionado no navegador. À rota, estamos anexando uma função de retorno de chamada que será chamada quando navegarmos até a URL do nó. A função possui 2 parâmetros.
  • O principal parâmetro que utilizaremos é o parâmetro 'res', que pode ser utilizado para enviar informações de volta ao cliente.
  • O parâmetro 'req' contém informações sobre a solicitação que está sendo feita. Às vezes, parâmetros adicionais podem ser enviados como parte da solicitação feita e, portanto, o parâmetro 'req' pode ser usado para localizar os parâmetros adicionais que estão sendo enviados.
  1. Estamos usando a função send para enviar a string “Tutorial on Node” de volta ao cliente se a rota do Node for escolhida.
  2. Aqui estamos definindo uma rota se a URL http://localhost:3000/Angular está selecionado no navegador. À rota, estamos anexando uma função de retorno de chamada que será chamada quando navegarmos até a URL Angular.
  3. Estamos usando a função send para enviar a string “Tutorial on Angular” de volta ao cliente se a rota Angular for escolhida.
  4. Esta é a rota padrão escolhida quando se navega até a rota do aplicativo – http://localhost:3000. Ao escolher a rota padrão, a mensagem “Bem-vindo aos Tutoriais Guru99” será enviada ao cliente.

Se o comando for executado com sucesso, a seguinte saída será mostrada quando você executar seu código no navegador.

Saída:

Rotas em Node.js

Da saída,

  • Você pode ver claramente que se navegarmos até a URL do host local na porta 3000, você verá a string 'Bem-vindo aos tutoriais do Guru99' exibida na página.
  • Porque em nosso código mencionamos que nosso URL padrão exibiria esta mensagem.

Rotas em Node.js

Da saída,

  • Você pode ver que se a URL tiver sido alterada para /Node, a respectiva rota do Node será escolhida e a string “Tutorial On Node' será exibida.

Rotas em Node.js

Da saída,

  • Você pode ver que se a URL tiver sido alterada para /Angular, a respectiva rota do Node será escolhida e a string “Tutorial On Angular” será exibida.

Exemplo de servidor Web usando express.js

Em nosso exemplo acima, vimos como podemos decidir qual saída mostrar com base no roteamento. Esse tipo de roteamento é usado na maioria dos aplicativos da web modernos. A outra parte de um servidor web trata do uso de modelos em Node js.

Ao criar aplicativos Node rápidos e dinâmicos, uma maneira fácil e rápida é usar modelos para o aplicativo. Existem muitos frameworks disponíveis no mercado para a criação de templates. No nosso caso, tomaremos o exemplo da estrutura jade para modelagem.

Jade é instalado através do gerenciador de pacotes Node. Isso pode ser feito executando a seguinte linha na linha de comando

npm instalar jade

O comando acima solicita ao gerenciador de pacotes Node que baixe os módulos jade necessários e os instale de acordo.

OBSERVAÇÃO: Na versão mais recente do Node, o jade foi descontinuado. Em vez disso, use pug.

Vamos usar nossa estrutura jade recém-instalada e criar alguns modelos básicos.

Passo 1) O primeiro passo é criar um modelo de jade. Crie um arquivo chamado index.jade e insira o código abaixo. Certifique-se de criar o arquivo na pasta “views”

Exemplo de servidor Web usando Express.js

  1. Aqui estamos especificando que o título da página será alterado para qualquer valor passado quando este modelo for invocado.
  2. Também estamos especificando que o texto na tag de cabeçalho será substituído pelo que for passado no modelo jade.

Exemplo de servidor Web usando Express.js

var express=require('express');
var app=express();
app.set('view engine','jade');
app.get('/',function(req,res)
{
res.render('index',
{title:'Guru99',message:'Welcome'})
});
var server=app.listen(3000,function() {});

Explicação do código:

  1. A primeira coisa a especificar na aplicação é o “mecanismo de visualização” que será usado para renderizar os templates. Como usaremos jade para renderizar nossos modelos, especificamos isso de acordo.
  2. A função render é usada para renderizar uma página da web. Em nosso exemplo, estamos renderizando o modelo (index.jade) que foi criado anteriormente.
  3. Estamos passando os valores “Guru99” e “Bem-vindo” para os parâmetros “título” e “mensagem” respectivamente. Esses valores serão substituídos pelos parâmetros 'title' e 'message' declarados no template index.jade.

Se o comando for executado com sucesso, a seguinte saída será mostrada quando você executar seu código no navegador.

Saída:

Exemplo de servidor Web usando Express.js

Da saída,

  • Podemos ver que o título da página é definido como “Guru99” e o cabeçalho da página é definido como “Bem-vindo”.
  • Isso ocorre por causa do modelo jade que é invocado em nosso aplicativo node js.

Resumo

  • A estrutura expressa é a estrutura mais comum usada para desenvolver aplicativos Node js. A estrutura expressa é construída sobre a estrutura node.js e ajuda no desenvolvimento rápido de aplicativos baseados em servidor.
  • As rotas são usadas para desviar os usuários para diferentes partes das aplicações web com base na solicitação feita. A resposta para cada rota pode variar dependendo do que precisa ser mostrado ao usuário.
  • Os modelos podem ser usados ​​para injetar conteúdo de maneira eficiente. Jade é um dos mecanismos de modelagem mais populares usados ​​em aplicativos Node.js.