web-dev-qa-db-fra.com

Vérifier si l'objet est vide ne fonctionne pas

Je teste le cas si mon objet était vide, donc j'ai intentionnellement fait un requête qui n'a aucune correspondance dans la base de données, ce qui devrait évaluer mon sinon si mais je n'en reçois pas réponse dans console.

Qu'est-ce que je fais mal?

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

Vous pouvez utiliser Object.keys() ou une autre fonction Object, ce code peut vous aider

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