栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

节点JS忽略未定义的检查

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

节点JS忽略未定义的检查

而不是

https.request
尝试使用
request

它将为您提供解析的JSON,而您无需手动进行。

如果您希望像手动操作那样手动操作,请记住将其包装

var json = JSON.parse(resultBody);
在try /
catch块中(或使用
tryjson
),因为
JSON.parse
不能在try
/ catch之外的未知数据上使用-可能引发异常。

另外,不要在路由处理程序中打开数据库连接。您应该打开一次连接,然后在处理程序中使用它。。

现在要连接到数据库,但你继续连接回调外,让您从开始的所有行

var json = JSON.parse(resultBody);
之前
建立的数据库连接。

此外,错误可能不是因为

json
未定义而是因为
json.place
未定义。

您可以更改此:

var eventPlace = json.place.name;

对此:

var eventPlace = json.place && json.place.name;

您还必须

json.photos
在访问之前检查
json.photos.data
并测试是否
json.photos.data
为数组,然后再将其视为此类(可以使用以下方法进行处理:

if (json.photos && Array.isArray(json.photos.data)) {  // ...}

基本上,您需要在访问它们之前确保值是您想要的值。例如访问此:

json.photos.data[json.photos.data.length-1].images[0].source

json
未定义,何时
json.photos
未定义,何时
json.photos.data
未定义,何时
json.photos.data
不是数组,何时
json.photos.data.length
为零,何时
json.photos.data[json.photos.data.length-1]
未定义,何时
json.photos.data[json.photos.data.length-1].images
未定义,何时
json.photos.data[json.photos.data.length-1].images
不是数组,何时
json.photos.data[json.photos.data.length-1].images
为数组但为空或何时
json.photos.data[json.photos.data.length-1].images
为a
时,可能失败非空数组,但
json.photos.data[json.photos.data.length-1].images[0].source
未定义。

如您所见,这里有很多假设。如果不满足这些假设,则代码将失败。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号