1
resposta

Retorno

Srs, bom dia.

Eu estou extraindo dados de um banco SQLServer. Tenho uma função que chama a classe que faz a conexão com esse banco.

Problema: Eu gostaria de pegar os dados na função que faz a chamada ao método da classe, porem não consigo via callbak. Penso que a forma que é feita a conexão com SQL esteja interferindo nesse caso. Se alguém puder ajuda eu agradeço.

Faz a chamada

function listar(app){      
  let connection = app.infra.connectionJund();    
  let jundDao = new app.dao.JundDAO(connection);    
  let data = new app.classes.DateHelper;      

  jundDao.lista(function(erro, result){
   if(erro){
    console.log(erro);
   }
   console.log(typeof result);
  });      
}  

Classe

var sql = require('mssql');                 

function JundDAO(connection){
  this._connection = connection;  
}

JundDAO.prototype.lista = function(callback){  
  var req = new sql.Request(this._connection);          

  var query = "SELECT ISNULL(NR_SEDEX,0) AS NR_SEDEX"+
              " FROM [V_AL_100] WHERE NR_SEDEX = 'RETIRA'";

  this._connection.connect(function(erro){
    if(erro){
      console.log('Erro listagem [Jund]:' +erro);
      return;  
    }    

    req.query(query, function(erro, result){
      if(erro){
        console.log("Erro listagem [Jund]" + erro);  
        return;
      }                          
    });  
  });    
  //this._connection.close();
} 

module.exports = function(){
  return JundDAO;    
}
1 resposta

Fala aí Leandro, tudo bem? Acho que você poderia utilizar o Sequelize nesse caso, trocar o mssql por ele.

O Sequelize é um ORM para aplicações feitas com Node:

http://docs.sequelizejs.com/

Espero ter ajudado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software