Olá!
Ao entrar em uma rota, o seguinte erro é apresentado:
"TypeError: Cannot read property 'persistencia' of undefined"
O erro completo:
TypeError: Cannot read property 'persistencia' of undefined
at app.get (E:\Documentos\GitHub\statusServer\servidor\src\rotas\rotas.js:12:36)
at Layer.handle [as handle_request] (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\layer.js:95:5)
at next (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\layer.js:95:5)
at E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\index.js:281:22
at Function.process_params (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\index.js:335:12)
at next (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\index.js:275:10)
at expressInit (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\middleware\init.js:40:5)
at Layer.handle [as handle_request] (E:\Documentos\GitHub\statusServer\servidor\node_modules\express\lib\router\layer.js:95:5)
Segue abaixo a relação dos arquivos:
================================
src\config\customExpress.js:
const express = require('express');
const consign = require('consign');
module.exports = () => {
var app = express();
consign({cwd: './src'})
.include('rotas')
.then('persistencia')
.into(app);
return app;
};
==========================
index.js
const app = require('./src/config/customExpress')();
const porta = 3433;
app.listen(porta, () => console.log("Servidor rodando na porta " + porta));
==================================================
src\persistencia\mysqlConnectionFactory.js:
const mysql = require('mysql');
module.exports = () => {
return mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'matheus',
database: 'teste'
});
};
=============================================================
src\persistencia\gcDao.js:
function GCDao(connection){
this._connection = connection;
}
GCDao.prototype.lista = callback => this._connection.query('SELECT * FROM pessoa', callback);
module.exports = () => GCDao;
=============================================================
src\rotas\rotas.js:
module.exports = app => {
app.get("/", (req, res) => res.status(404).send("Não foi possível encontrar o recurso solicitado"));
app.get("/gc", (req, res) => {
console.log();
console.log('Requisitando status do GC');
console.log();
const connection = app.src.persistencia.mysqlConnectionFactory();
const pagamentoDao = new app.src.persistencia.pagamentoDao(connection);
pagamentoDao.lista((exception, result) => {
if(!exception){
console.log('Pessoas:\n' + JSON.stringify(result));
res.json(result);
}else{
console.log('Não foi possível obter os resultados.\n' + exception);
res.status(500).send('Não foi possível obter os resultados.\n' + exception);
}
});
});
}