我使用这个特定版本: SQL Server npm 包的https://github.com/patriksimek/node-mssql/tree/v3.3.0#multiple-connections。
我一直在查看繁琐的文档(底层库)和微软的文档(参见上面的 github 链接)。
我找不到任何可以做一些简单的事情getCurrentConnection
,或者getConnectionStatus
类似的事情。
我有两种方法可以解决这个问题,但我对它们都不满意,所以这就是我在这里问的原因。
我的第一种方法是设置一个超时,让 connect 函数在每个catch(err)
.
第二个是在中间件中处理此问题,但如果一切正常,它将在每个请求上建立与 SQL 的连接并再次关闭该连接。
我的中间件功能:
api.use(function(err, req, res, next){
sql.close();
sql.connect(config.database).then(() => {
next();
}).catch(function(err) {
sql.close();
server.main();
});
});
我想,如果可能的话,在服务器或数据库崩溃时选择连接而不是关闭并启动一个新连接,我仍然有一些来自现有函数的数据。