以这个 URL 为例:https ://api.eveonline.com/eve/CharacterID.xml.aspx?names=Khan
使用xml2js node.js 模块,您可以解析该 XML,尽管它看起来并不漂亮:
var CharacterID = response.eveapi.result[0].rowset[0].row[0].$.characterID;
该应用程序在运行 2 周后崩溃,这一切都是因为未定义行集 [0] 。在此之前它崩溃了,因为eveapi没有定义。说真的,我的if-else是否必须像这样只是为了防止服务器由于愚蠢的未定义对象错误而崩溃?
if (!response.eveapi ||
!response.eveapi.result[0] ||
!response.eveapi.result[0].rowset[0] ||
!response.eveapi.result[0].rowset[0].row[0]) {
return res.send(500, "Error");
除了适用的明显错误处理之外,未定义错误if (err) return res.send(500, "Error");
的一般做法是什么?