Boa tarde, pessoal
Estou com um problema que não consigo resolver a respeito do consign e do dbDao. Podem me ajudar, por favor?
O que está acontecendo é que ao instanciar o "dbDao" após o connectionFactory o mesmo está dando undefined e eu recebo o erro que coloquei no título. Já procurei algumas situações parecidas e já verifiquei as devidas soluções, nenhuma funcionou.
Enfim, segue o código: custom-express:
var express = require('express');
var consign = require('consign');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');
var morgan = require('morgan');
var logger = require('../services/logger.js');
var path = require('path');
var root = "./";
module.exports = function () {
var app = express();
// view engine setup
app.set('views', path.join(root, 'views'));
app.set('view engine', 'pug');
app.use(express.static(path.join(root, 'public')));
app.use(morgan("common", {
stream: {
write: function (mensagem) {
logger.info(mensagem);
}
}
}));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(expressValidator());
consign()
.include('routes')
.then('dbDao')
.then('services')
.into(app);
return app;
};
daoPayment:
function daoPayment(connection) {
this._connection = connection;
}
daoPayment.prototype.save = function(pagamento, callback) {
this._connection.query('INSERT INTO pagamentos SET ?', pagamento, callback);
};
daoPayment.prototype.update = function(pagamento, callback) {
this._connection.query('UPDATE pagamentos SET status = ? where id = ?', [pagamento.status, pagamento.id], callback);
};
daoPayment.prototype.list = function(callback) {
this._connection.query('select * from pagamentos',callback);
};
daoPayment.prototype.findById = function (id, callback) {
this._connection.query("select * from pagamentos where id = ?",[id],callback);
};
daoPayment.prototype.findUser = function (passport, callback) {
this._connection.query("select * from users where user = ? and pswd = ?",[passport.user, passport.pswd], callback);
};
module.exports = function(){
return daoPayment;
};
rota userAccess:
module.exports = function (app) {
app.get("/", function (req, res, next) {
res.render('index', {title: 'SoulPay', usrOrPswdCorrect: true});
});
app.post("/authLogin", function (req, res, next) {
console.log("Req Body: " + req.body);
var hash = crypto.createHash("sha256");
var passport = {
user: req.body.user,
pswd: req.body.pswd
};
var connection = app.dbDao.connectionFactory();
console.log("connection: " + connection);
var daoPayment = app.dbDao.daoPayment(connection);
console.log("daoPayment: " + daoPayment);
daoPayment.findUser(passport, function (error, ret) {
if (error) {
console.log('erro ao consultar no banco: ' + error);
res.status(500).render("error", {message: "Falha ao consultar o banco de dados", error});
}
console.log(ret);
return true;
});
});
};
Obs: Estou criando um outro projeto a partir do que aprendi aqui, por isso dos arquivos daoPayment com findUser e a rota userAccess.
Atenciosamente, Caio Salgado Nepomuceno