instalacao, voce precisa especificar a versao do visual studio atraves da flag --msvs_version. No meu caso, ficou assim:npm install mongoose --save --msvs_version=2013Em seguida, criamos uma pasta chamada config e dentro dela um arquivo chamado config.js com o seguinte formato:module.exports={ db:{ sgbd:'mongo', username:'seu_usuario', password:'sua_senha', host:'ds031741.mongolab.com', port:31741, database:'node-auth-example', } }; Para finalizar esta etapa, vamos adicionar algumas linhas ao arquivo app.js, localizado na raiz do projeto. As primeiras linhas do arquivo sao assim:var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); Apos a criacao da variavel app, adicionaremos o seguinte codigo:var config=require('./config/config.js');/********************** *** BANCO DE DADOS *** **********************/var dbname=config.db.sgbd;var username='';var password='';var dbPort='';var host='';var database='';var url='';switch(dbname){ case 'mongo': var opts={ server:{ socketOptions:{keepAlive:1} } }; username=config.db.username; password=config.db.password; dbPort=config.db.port; host=config.db.host; database=config.db.database; url='mongodb://'+username+":"+password+"@"+host+":"+dbPort+"/"+database; var mongoose=require('mongoose'); mongoose.connect(url, opts); break; default: throw new Error("Banco de dados desconhecido: "+dbname); break;}RotasAgora, vamos tratar das rotas da nossa aplicacao. Isso significa que vamos dizer para onde vai cada uma das URLs acessadas pelo usuario. Portanto, precisamos algo que nos permita criar as rotas de forma simples. O modo padrao do express (utilizando o objeto Router) e bom, mas existe uma juncao muito grande da rota e da funcao que a gerencia. Para manutencoes futuras isso pode ser um problema. O ideal e que a rota seja o mais separado possivel do controller e e isso que vamos fazer agora. Para implementar, vamos adaptar as rotas que o express ja disponibiliza por padrao para esta nova realidade. Com isso implementado, as rotas estarao bem mais organizadas.Crie um arquivo chamado routes.js, na pasta config, com o seguinte conteudo:module.exports={ // Caso o metodo da rota seja diferente de GET, utilizar o nome do metodo antes da rota (Ex: 'POST /nome/nome2') '/':{ controller:'IndexController', action:'index', }, '/users':{ controller:'UsersController', action:'index', },}; Feito isso, vamos criar os controllers da nossa aplicacao. Renomeie a pasta routes para controllers e dentro dela, renomeamos o arquivo index.js para IndexController.js e users.js para UsersController.js. Depois, O primeiro, ficara assim:var IndexController={ index:function(req,res){ res.render('index',{title: 'Express'}); } }; module.exports=IndexController; E o segundo:var UsersController={ index:function(req,res){ res.send('users controller: respond with a resource'); } }; module.exports = UsersController; Agora vamos juntar tudo. Criaremos um arquivo que vai carregar as rotas de acordo com as descricoes no arquivo config/routes.js. Criaremos um arquivo chamado route_loader.js na pasta lib com o seguinte conteudo:module.exports=function(app){ var routes=require('../config/routes'); var fs=require('fs'); var controllers_folder=__dirname+'/../controllers'; for(var k in routes){ var route=routes[k]; var url=k; var controller_filename=route.controller; var action_name=route.action; var method=(route.method)? route.method.toLowerCase() : 'get'; // carregando a rota var controller=require(controllers_folder+"/"+controller_filename+".js"); app[method](url, controller[action_name]); } }; Agora, e so chamar a funcao no arquivo app.js. Primeiro, eliminamos as seguintes linhas do arquivo:var routes = require('./routes/index'); var users = require('./routes/users');// Eapp.use('/', routes); app.use('/users', users); Depois, adicionamos as seguintes linhas:/************* *** ROTAS *** *************/ require('./lib/route_loader')(app); Agora, execute a aplicacao e perceba que nada mudou (pelo menos externamente). Agora, nossas rotas estao bem mais organizadas. Pode-se ainda, colocar as rotas para pagina nao encontrada e erro interno de servidor dentro do arquivo lib/route_loader.js. Mas isso e opcional. Remova tambem