繁体   English   中英

Node.js响应的二级对象错误

[英]Error on second level object for nodejs response

我有这种情况..,我正在做这样的事情:

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是“ undefined”,但是我对于r.otherKey.id却感到恐惧。

"TypeError: Cannot read property 'id' of undefined"

任何解决问题的想法???

您可以利用&&运算符执行以下操作:

a.someotherKey = {
    id: r.otherKey && r.otherKey.id || ""
}

&&将返回第二值,如果两者均为真,和false如果一个(或两个)为假。

如果您有一个深对象,例如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: ""
    };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM