So, I am trying to check whether there is a user or not I have the following code:
const userExist = await User.find({ username: req.body.username });
if (userExist)
return res.status(400).send({ message: "User already exists" });
but even if the user doesn't exist it still gives the error User already exists
and the userExists object return []
CodePudding user response:
The reason is []
is true in Javascript
. You need to check the length and check if there is some data in an array.
const userExist = await User.find({ username: req.body.username });
if (userExist.length > 0)
return res.status(400).send({ message: "User already exists" });
For future references, all the below values are truthy in JS.
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
Note: Recommend you to check this link.
CodePudding user response:
u can use const user = await User.findOne({ username: req.body.username });
this get only one and u can check !user