检查对象是否为空不起作用

时间:2018-05-07 09:04:06

标签: node.js is-empty

如果我的对象 为空,我正在测试这个案例,所以我故意在数据库中创建了一个查询,我应该评估 else if 语句,但我在控制台中没有得到任何响应

我做错了什么?

user.loginUser = (jUserData, res) => {
    var aData = [
        jUserData.email,
        jUserData.mobile_number,
        0
    ]
    var sQuery = 'SELECT * FROM users WHERE email = ? AND mobile_number = ? AND active = ?'

    function isEmpty(obj) {
        for (var key in obj) {
            if (obj.hasOwnProperty(key))
                return false;
        }
        return true;
    }
    db.each(sQuery, aData, function (err, jRow) {
        console.log(jRow)
        if (err) {
            console.log('BAD, user not logged in')
            return res(true, {
                status: "INTERNAL SERVER ERROR"
            })
        }
        if (isEmpty(jRow)) {
            console.log('NOT FOUND')
            return res(true, {
                status: "NOT FOUND"
            })
        }
        console.log('GREAT, user logged in')
        return res(false, jRow)
        console.log(jRow)
    })
}

1 个答案:

答案 0 :(得分:9)

您可能希望使用Object.keys()或其他Object功能,此代码可能会对您有所帮助

function isEmpty(obj) {
    return !obj || Object.keys(obj).length === 0;
}