Primeiro, vamos adicionar Mongoose às dependências do nosso projeto e configurá-lo. Criei a pasta db dentro da pasta src
Aqui estou usando a versão cloud do MongoDB
Agora, criamos a pasta models dentro de srce adicionamos o arquivo url.js. Adicionamos as dependencias validator (para validar nossa entrada) e shortid (para gerarmos uma URL encurtada única) ao nosso projeto
O resto será feito diretamente no nosso servidor.
Configurando nosso servidor
E é isso, o core do projeto é esse, ele pode ser manipulado de diversas formas. Podemos criar um REGEX para validarmos a entrada do usuário (entradas do tipo “http://” ou “https://”), também podemos utilizar o dns.lookup do módulo padrão dnsdo Node para validarmos a URL.
Podemos também integrar facilmente uma interface, basta criarmos uma view html (ou qualquer outro tipo) e criarmos um arquivo Javascript para lidarmos com as requisições.