我的请求没有结果

时间:2015-08-24 13:30:17

标签: node.js express tedious

我正在通过Tedious请求SQL Server数据库的小型Nodejs / Express网站上工作。

当我在任何功能之外创建连接时,它似乎工作但我无法刷新。

当我尝试将它放入我的connx函数中时,没有任何附加内容,它似乎不会以var fs = require('fs') var httpProxy = require('http-proxy'); var https = require('https'); var KEY = 'newfile.key.pem'; var CERT = 'newfile.crt.pem'; httpProxy.createServer({ changeOrigin: true, target: 'https://example.com', agent: new https.Agent({ port: 443, key: fs.readFileSync(KEY), cert: fs.readFileSync(CERT) }) }).listen(8080); 顺序输入。

我很失落。希望你能帮助我。

conn.on('connect'...)

2 个答案:

答案 0 :(得分:0)

conn.on('connect')是异步的,但它在同步函数中 - connx。这意味着res.render在完成之前被调用,因此您最终得到result = []。您需要将回调传递给connx,并确保在conn.on('connect')完成时调用它。

看看this link,它会指向正确的方向。

答案 1 :(得分:0)

我试过这个

connx(dated, datef, function() {
  res.render('index', { 
    data: results,
    dated: dated,
    datef: datef
  });
});

function connx(dated,datef,callback) {
  var conn = new Connection(config);
  conn.on('connect', function () {
    results = [];
    var request = new Request(requete1(dated,datef), function(err,  rowCount) {
        if (err)
            console.error(err);
        else
            callback();
    });

    request.on('row', function(row) {
        results.push({
            batch: row[0].value,
            parametres: row[1].value,
            etat: row[2].value,
            duree: row[3].value,
            resultat: row[4].value
        })
    });

    conn.execSql(request);

    request.on('done', function() {
        console.log('ici');
        conn.close();
    });
  });
}

看起来不错。感谢。