gpt4 book ai didi

javascript - Node.js 错误处理——如何处理导致错误的未定义值

转载 作者:搜寻专家 更新时间:2023-10-31 23:01:00 25 4
gpt4 key购买 nike

以这个网址为例: 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 周后崩溃,这都是因为 rowset[0] 未定义。在此之前它崩溃是因为 eveapi 没有定义。说真的,我的 if-else 是否必须像这样只是为了防止服务器因愚蠢的 undefined 对象错误而崩溃?

 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"); 适用的错误处理之外,undefined 错误的一般做法是什么?

最佳答案

我为这种东西写了一个库,叫做 dotty ( https://github.com/deoxxa/dotty )。

在您的情况下,您可以这样做:

var dotty = require("dotty");

var CharacterID = dotty.get(response, "eveapi.result.0.rowset.0.row.0.$.characterID");

在路径不可解析的情况下,它只会返回未定义。

关于javascript - Node.js 错误处理——如何处理导致错误的未定义值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17358267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com