Eu sei que alguns cursos mostrado aqui no alura é ensinado a utilização do modulo mysql.
Porém estou usando mssql (sql server) no node, e estou enfrentando um problema que acredito que seja haver com callback.
Para realizar consultar ao banco eu consigo norlmalmente, porém, quando tenho que realizar um laço de repetição em uma consulta ele não executa todos os index do arry,
exempo
valor [0,1,2],
é executado apenas o ultimo valor sem executar os outros. meu controller
var itensParaEnvio = [];
api.contabilizacaoItems = function (req, res, next) {
itensParaEnvio = [];
var dados = req.body;
cont = 1
console.log(dados.items.length);
dados.items.forEach(function (item, key){
item.aprovacao = dados.aprovacao
solicitacaoSqlDAO.contabilizacaoItem(item, function (erro, recordset) {
item.contItem= recordset.recordset;
solicitacaoSqlDAO.aenItem(item, function (erro, recordset) {
item.aenItens= recordset.recordset;
itensParaEnvio[key]= item;
if(cont == dados.items.length) res.status(200).json(itensParaEnvio);
else res.status(404).json("erro");
})
})
});
};
return api;
}
meu DAO
solicitacaoDAO.prototype.contabilizacaoItem = function (item, callback) {
console.log("# PARA CONSULTA contabilizacaoItem# ");
mssql.close();
mssql.connect(this._connection, function (err) {
if (err) {
console.log("# ERRO AO REALIZAR CONEXAO PARA CONSULTA contabilizacaoItem# "+ err);
}
var request = new mssql.Request();
query = "alguma consulta";
// console.log(query);
request.query(query, function (err, recordset) {
if (err) {
console.log(query);
callback(err,recordset);
} else {
callback(err,recordset);
}
});
});
}
solicitacaoDAO.prototype.aenItem = function (item, callback) {
console.log("# PARA CONSULTA aenItem# ");
mssql.close();
mssql.connect(this._connection, function (err) {
if (err) {
console.log("# ERRO AO REALIZAR CONEXAO PARA CONSULTA aenItem# "+ err);
}
var request = new mssql.Request();
query = "alguma consulta";
// console.log(query);
request.query(query, function (err, recordset) {
if (err) {
console.log(query);
callback(err,recordset);
} else {
callback(err,recordset);
}
});
});
}
Alguém já usou mssql ? ou já passou por alguma situação parecida ?
desde já agradeço!