简体   繁体   中英

How to check whether a user exists in mongoose?

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 []

u can use const user = await User.findOne({ username: req.body.username }); this get only one and u can check !user

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.

Another way to verify if the user exists is to use mongoose .exist() . If at least one document exists in the database that matches the given filter, and null otherwise

Read more here .exists

`

 const userExist = await User.exists({ req.body.username });

  if (userExist)
          return res.status(400).send({ message: "User already exists" });

`

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM