Olá, na parte do carregamento dos módulos com a variável l
load
, tentei inverter a ordem de carregamento em app
e parece-me que as rotas não foram carregadas. Entendi que é por conta de dependências entre os módulos de rota de produtos e conexão com o banco de dados. Porém o que não entendi é: por que routes
não carrega? Onde está essa dependência, mencionada pelo instrutor? Não consegui ver .
Código:
/config/express.js
var express = require('express');
var load = require('express-load');
module.exports= function () {
var app = express();
app.set('views', './app/views');
app.set('view engine', 'ejs');
load('infra' )
.then('routes', {cwd : 'app'})
.into(app);
return app;
}
/app/routes/produtos.js
module.exports = function(app){
app.get('/produtos', function(req, res){
console.log(app.infra.connectionFactory);
var connection = app.infra.connectionFactory();
connection.query('select * from produtos', function(err, result){
if(err) res.send('ERRO: ' + err.message);
res.render('produtos/lista', {lista: result});
});
connection.end();
});
}
/app.js
var app = require('./config/express')();
var host = 'localhost',
port = 3000;
app.listen(port, host, function(){
console.log('Servidor rodando no servidor ' + host + ' porta ' + port);
});
/app/infra/connectionFactory.js
var mysql = require('mysql');
var host = 'localhost',
user = 'root',
password = 'admin',
database = 'casadocodigo_nodejs';
function createDBConnection(){
var connection = mysql.createConnection({
host : host,
user : user,
password : password,
database : database,
});
return connection;
}
module.exports = function(){
return createDBConnection;
}