2017-08-29 5 views
0

を使用して問題が発生しました。または文が続行されます。以下 は、私が思い付くことができたコードです:OR文を使用してsequelizeでクエリ

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: '' })); 

}

代わりのsequelize documentation

によると、ユーザー

答えて

5

から、またはそれが唯一の選択なステートメント*実行します$or配列の異なる場所として異なる条件を与える必要があります。

これを試してください:

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

ありがとう、それは動作します! – dealwap

+0

良い@hemantkumar –

関連する問題