我正在通过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'...)
答案 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();
});
});
}
看起来不错。感谢。