更新:哦,就像将Wreck.get()
调用包装在try… catch
块中一样容易。在这个问题上不需要采取进一步的行动。
我正在使用以下简单代码从远程服务器请求数据
const {res, payload} = await Wreck.get(uri);
如果由于某种原因,远程服务器无法访问(网络中断,有人拔掉路由器,无论如何),hapijs
(版本17)退出并出现致命错误
{ Error: getaddrinfo ENOTFOUND remote.org remote.org:443
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:57:26)
errno: 'ENOTFOUND',
code: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: 'remote.org',
host: 'remote.org',
port: 443,
trace:
[ { method: 'GET',
url:
'https://remote.org/api/…' } ],
isBoom: true,
isServer: true,
data: null,
output:
{ statusCode: 502,
payload:
{ message:
'Client request error: getaddrinfo ENOTFOUND remote.org remote.org:443',
statusCode: 502,
error: 'Bad Gateway' },
headers: {} },
reformat: [Function] }
我希望返回错误消息,但hapijs
继续运行。我该怎么办?
答案 0 :(得分:0)
在try {} catch(err) {}
语句周围添加Wreck.get()
块解决了该问题。