web-dev-qa-db-ja.com

オブジェクトが空かどうかの確認が機能しない

objectemptyだった場合のケースをテストしているので、意図的にデータベースに一致しないqueryを作成しました。 else ifステートメントですが、consoleresponseを取得できません。

何が悪いのですか?

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)
    })
}
4
July333

Object.keys()または他のObject関数を使用したい場合、このコードが役立ちます

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