Express é um framework para Node.js inspirado no Sinatra. Ele é minimalista, flexível e contém um robusto conjunto de recursos para desenvolver aplicações web, como um sistema de Views intuitivo (MVC), um robusto sistema de roteamento, um executável para geração de aplicações e muito mais.

Instalação

Para iniciar o desenvolvimento com Express primeiro é preciso instalá-lo, há muitas formas de fazer isso, porém a mais fácil é através da npm.

$ npm install express@3.x

Primeira aplicação com o Express

Para criar a primeira aplicação poderia ser utilizado o express(1) e ele geraria automaticamente a aplicação e seu esqueleto, de qualquer forma uma aplicação em Express pode ser um único arquivo contendo em JavaScript e no nosso caso, de uma simples aplicação de “Ola Mundo”, isso é exatamente o que precisamos.

A primeira coisa que é preciso fazer é importar o módulo express e criar um app.

var express = require('express'),
    app = express();

Com uma nova instância de aplicação a próxima tarefa é estabelecer uma ou mais rotas. Uma rota consiste em um método HTTP, um caminho (uma string ou uma expressão regular) e uma função callback (que será chamada quando o evento ocorrer). Este exemplo “Ola Mundo” chama app.get() que representa o método GET do HTTP, e o caminho / representando nossa página raiz, seguido da função de callback.

Os objetos req e res são exatamente os mesmos objetos que o node fornece à você, assim você pode chamar res.pipe(), req.on('data', callback) ou qualquer outra coisa que você quiser fazer sem involver o Express.

app.get('/', function(req, res){
    res.send('Ola Mundo');
  });

Em seguida temos que informar o servidor para escutar uma dada porta. Abaixo foi chamado o método listen(3000) do nosso objeto app que tenta criar um servidor e vinculá-lo à porta 3000. A porta pode ser qualquer uma que você escolher, por exemplo a porta 80 padrão usando listen(80).

var server = app.listen(3000);
console.log('Servidor Express iniciado na porta %s', server.address().port);

Rodando a aplicação

Para rodar o servidor basta salvar esta aplicação em um arquivo, neste exemplo app.js, e simplesmente executá-la passando o nome do arquivo como parâmetro para o node:

$ node app.js
Servidor Express iniciado na porta 3000

Finalmente para confirmar que tudo está funcionando como o esperado basta acessar o caminho http://localhost:3000 em seu navegador ou simplesmente usar o comando curl do linux:

$ curl http://localhost:3000
Ola Mundo

Todo o código da aplicação

Abaixo está as 12 linhas de código usadas para criar nossa primeira aplicação em Express:

var express = require('express'),
    app = express();

app.use(express.logger());

app.get('/', function(req, res){
    res.send('Ola Mundo');
});

var server = app.listen(3000);
console.log('Servidor Express iniciado na porta %s', server.address().port);