6
respostas

express-load - This package has been deprecated

Substituo o express-load pelo express-route-autoloader?

6 respostas

Oi Andre, o substituto real mesmo é o consign. Dá uma olhada nele que é a recomendação mesmo. No curso de APIs com Node, é usado ele já.

Obrigado! Vou dar uma olhada mais tarde.

Tô frustrado! Não consegui fazer meu código funcionar.

Ao tentar carregar a página de produtos eu recebo o seguinte erro: "TypeError: Cannot read property 'connectionFactory' of undefined".

Em produtos.js


module.exports = function(app){
    app.get('/produtos',function(req,res){

        var connection = app.infra.connectionFactory();
        let produtosBanco = app.infra.produtosBanco; 

        produtosBanco.lista(connection,function(err,results){
            console.log(err);
            if(err){
            res.send(err);

            }
            res.render('produtos/lista',{lista:results});
        });
        connection.end();
    });

}

connectionFactory.js

let mysql = require('mysql');

function createConnection(){
    return mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database: 'casadocodigo'
    });
} 

module.exports = function(){
    return createConnection();
}

express.js

let express = require('express');
let load = require('consign');

module.exports = function(){
    let app = express();

    app.set('view engine','ejs');
    app.set('views', './app/views');
    console.log("Módulo carregado");

    load({cwd: 'app'})
    .include('routes')
    .then('infra')
    .into(app);

    return app;
}

Puxa vida Andre, você não deveria estar tendo problemas, o funcionamento dos dois é igual, tipo, a configuração é a mesma. Fica triste não que a gente vai resolver isso.

Você consegue me disponibilizar seu projeto no github? assim eu consigo ver ele direitinho e posso testar e identificar o problema.

Salve André, creio que o problema esteja na ordem de carregamento. O módulo "infra" é uma dependência do módulo "routes" para realizar a consulta no banco.

    load({cwd: 'app'})
        .include('infra')
        .then('routes')
        .into(app);

Faz o teste por favor e vê se da certo. Qualquer coisa da uma olhada no código que disponibilizei no git:

Autoload com o consign - https://github.com/giulianogusmao/alura-node-js/tree/bug-express-load

Abs!

Hm, não pensei nisso, pode ser isso mesmo.

Andre, olha o post do Giuliano e dá um retorno aqui pra gente por favor?