问题描述
在Node / Express应用程序中,我有一个检查2台服务器的运行状况的函数,还有一个封闭的函数,该序列对调用进行序列化,期望大多数时间我只需要进行1遍检查。
在检查功能中,有时会出现ECONNRESET错误,并且(当前)将其扔到封闭功能的catch
块中。
但是,我看到的问题是我所期望的闭包-带有全局和函数局部值-似乎不存在:我的全局Winston实例为null,并且得到了TypeError: gLog is not a function
。我的期望是无效的还是这里发生了更大的失败?我应该通过取消整个过程来处理此错误吗?
async function checkHealth(req,res,next) {
let version = req.query.version || 0;
let upHost = '';
if (req.hPair) {
try {
upHost = await hStatus.check(req.transID,version,req.hPair.preferred);
if (upHost) {
req.hHost = upHost;
} else {
req.hHost = await hStatus.check(req.transID,req.hPair.offside);
}
} catch (e) {
glog.error(`${req.transID} Host healthcheck error: ${inspect(e)}`);
req.hstatus = 500;
}
}
if(req.hstatus) {
res.status(req.hstatus).end();
} else {
next();
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)