我有这种情况..,我做了这样的事情:
app.post('someUrl', function (req, res) {
var r = res.data;
var a = {};
a.name = r.name || "",
a.someotherKey : {
id: r.otherKey.id || ""
}
});
当res.data ==""时,我可以分配a.name的值,因为r.name是"未定义",但我是r。 otherKey.id我得到了一个可怕的
"TypeError: Cannot read property 'id' of undefined"
解决问题的任何想法???
答案 0 :(得分:1)
您可以利用&&
运算符执行:
a.someotherKey = {
id: r.otherKey && r.otherKey.id || ""
}
如果两者都为真,则 &&
将返回第二个值,如果其中一个(或两者)为假,则返回false
。
答案 1 :(得分:1)
如果你有一个深层对象,比如r.otherKey.prop.furtherDown.id
,那么这个答案特别有用。
您可以使用try {} catch {}
块来执行此操作,并在未定义时处理错误:
try {
a.someOtherKey.prop.furtherDown = {
id: r.otherKey.prop.furtherDown.id || ""
};
} catch (e) {
a.someOtherKey.prop.furtherDown = {
id: ""
};
}