Boa tarde, antes de comecar a usar o express-load minha consulta estava funcionando perfeitamente, na verdade coloquei o expresse-load e ainda ficou funcionando uma parte do codigo, mas quando tento usar a connection recebendo app.infra.connectionFactory(); ele da o seguinte erro:
TypeError: /Users/user/Documents/JavaScript/node/casadocodigo/app/views/produtos/lista.ejs:16 14|
16| <% for(var i = 0; i < lista.length; i++) {%> 17|
Cannot read property 'length' of undefined at eval (eval at compile (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/ejs/lib/ejs.js:524:12), :11:32) at returnedFn (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/ejs/lib/ejs.js:555:17) at tryHandleCache (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/ejs/lib/ejs.js:203:34) at View.exports.renderFile [as engine] (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/ejs/lib/ejs.js:412:10) at View.render (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/express/lib/view.js:128:8) at tryRender (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/express/lib/application.js:640:10) at EventEmitter.render (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/express/lib/application.js:592:3) at ServerResponse.render (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/express/lib/response.js:971:7) at Query._callback (/Users/user/Documents/JavaScript/node/casadocodigo/app/routes/produtos.js:7:17) at Query.Sequence.end (/Users/user/Documents/JavaScript/node/casadocodigo/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24)
meu produto.js:
module.exports = function(app) { app.get("/produtos",function(req, res) {
var connection = app.infra.connectionFactory();
connection.query('select * from produtos', function(err, results){ res.render('produtos/lista', {lista: results}); });
connection.end();
}); } connectionFactory.js: var mysql = require('mysql');
function createDBConnection(){ return mysql.createConnection({ host: 'localhost', user: 'root', password: 'toor', database: 'casadocodigo' }); }
module.exports = function() { return createDBConnection; } express.js: var express = require('express'); var load = require('express-load');
module.exports = function() {
var app = express(); app.set('view engine', 'ejs'); app.set('views','./app/views');
load('routes',{cwd: 'app'}) .then('infra') .into(app);
return app;
} app.js: var app = require('./config/express')();
app.listen(3000, function () { console.log("servidor rodando na porta 3000"); });
lista.ejs: <!DOCTYPE html>
id | nome | descricao | preco |