Node.js - Criando um simples servidor web com Express 4

 

Assim como eu, provavelmente você já tenha feito a si essa pergunta:

Eu posso criar um simples servidor web utilizando Node.js? Eu só quero algo pra rodar arquivos HTML, carregar os roteiros de códigos de maneira fácil.

Resposta: Sim, você pode fazer isso com Node.

Tendo em mente que você deve executar todos esses passos de dentro da pasta do seu projeto. Segue com a gente o passo a passo e veja como é simples!

Criando o package.json (opcional)

É apenas simples e fácil assim como o próximo passo. Vá até a linha de comando e digite:

npm init

Preencha todas as perguntas e vá para o próximo passo.

Criando o bower.json (opcional)

Tão simples quanto criar o package.json, ainda sem sair da linha de comando, digite:

bower init

Preencha mais uma vez todas as perguntas.

Instalando as nossas dependências com o npm

Para fazer o servidor rodar nós precisaremos do express e nada mais. Então:

npm install --save express

Criando um arquivo para iniciar o servidor

Agora crie um arquivo para iniciar o servidor, no nosso exemplo o arquivo se chama server.js, importe o Express e crie a aplicação, dessa maneira:

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

var path = require('path');

app.use(express.static(path.join(__dirname, 'public')));

app.listen(3000);

Entendendo o código

Na primeira linha estamos pedindo a dependência express , na segunda linha estamos iniciando a aplicação, na quarta estamos pedindo a dependência path (que faz parte do núcleo do Node.js).

Linha 6

Antes precisamos entender para que servem o app.use() e o express.static() :

De acordo com a documentação do Express, o app.use() é utilizado para montagem de middlewares, se não definirmos nenhum caminho (app.use(‘/someUrlHere’, some.Middleware()) ) antes de declararmos o middleware, que no caso é o express.static(), por padrão ele será definido no caminho raiz, ou seja, quando determinamos a pasta public na linha 6, não estamos dizendo que aquela é a pasta pública e que ela vai conter o nosso site, estamos dizendo que quando o usuário entrar no caminho raiz do site, ele estará acessando a esta pasta também, OU SEJA, todos as pastas e arquivos dentro dela estarão disponíveis para o acesso diretamente do navegador.

Já o express.static é baseado no server-static e serve simplesmente para prover o acesso em uma pasta e todos os seus arquivos.

Última linha

Nesta linha, estamos apenas iniciando o servidor da aplicação.

Iniciando o servidor

Voltando novamente a linha de comando, digite:

node server.js

Dicas

Você pode por outras pastas no caminho raiz do servidor web de sua aplicação para facilitar o acesso aos assets, como por exemplo, a pasta bower_components , você pode simplesmente digitar a seguinte linha após ou antes da linha 6 no nosso arquivo server.js:

app.use('/lib', express.static(path.join(__dirname, 'bower_components')));

E pronto, a rota /lib proverá o acesso para todas pastas e arquivos da respectiva pasta, ou seja, ao invés de ter que copiar os arquivos para dentro da pasta public, você pode simplesmente, acessar http://localhost:3000/lib/angular/angular.min.js e vu alá, você tem acesso ao asset que procurava sem ter que fazer nada de muito complicado.

Bom, espero que tenham gostado, até a próxima! :)