我正在构建一个节点。带express的JS应用程序。js基本上是连接SQL Server中进程的桥梁。
所以我有一个路由器:
router.get('/runpr/:ref', function(req, res, next) {
var p1 = req.params.ref;
execSQLQuery("EXEC SP_PROCESSA_PREMIO "+p1, function(result, err) {
var response = '';
if ( err != null ) {
// change error to node errors
response = [{
A_STATUS: 0,
MSG: err.originalError.info.message,
FINISHED: new Date(Date.now())
}];
} else {
response = result.recordset;
}
res.json( response );
});
})
被调用的函数execSQLQuery:
function execSQLQuery(sqlQry, callback) {
var request = new sql.Request();
request.query(sqlQry, function(err, recordset) {
callback(recordset, err);
});
}
SQL连接对于其他查询工作正常,但此特定过程是从节点调用的,大约需要3分钟。该过程始终返回一个包含SQL错误或成功结果的数据集。但在这种情况下,当我浏览到路由器时,需要一些时间才能返回error\u EMPTY\u响应。
当我检查SQL Server时,该过程仍在运行,我假设
mssql节点超时
,所以我设置:>
var config = {
user: 'xxxx',
password: 'xxx',
server: 'xxxx',
database: 'xxxx',
connectionTimeout: 500000,
requestTimeout: 500000
}
还有这个,
对于节点本身
:
// listen and timeout
var server = app.listen(app.get('port'))
server.timeout = 500000;
他们都没有解决这个问题。。。