2017-08-29 2 views
0

J'ai un problème en utilisant ou instruction est sequelize. Ci-dessous le code que j'ai pu venir avec:Utilisation de l'instruction OR dans sequelize où la requête

UserExist(req, res) { 
const field = req.body.username || req.body.email; 
const getFieldName = field === req.body.username ? 'username' : 'email'; 
return User 
    .findOne({ where: { 
    $or: [ 
     { 
     email: req.body.email, 
     username: req.body.username 
     } 
    ] 
    } 
    }) 
    .then((user) => { 
    if (user) { 
     res.status(200).send({ message: `${getFieldName} already exist` }); 
    } 
    }) 
    .catch(() => res.status(404).send({ message: '' })); 

}

Au lieu d'exécuter la OU statment il sélectionne uniquement * d'utilisateurs

Répondre

5

Selon le sequelize documentation

vous devez donner différentes où les conditions comme élément différent de $or tableau

S'il vous plaît essayez ceci:

$or: [ 
    { 
    email: req.body.email 
    }, 
    { 
    username: req.body.username 
    } 
] 
+0

Merci beaucoup, ça marche! – dealwap

+0

bon @hemantkumar –