Проверка, существует ли номер в mongodb - PullRequest
0 голосов
/ 28 апреля 2020
registerRouter.route('/uidcheck')
.post((req, res, next) => {
  Register.find({ aadhaar: Register.aadhaar })
  .then((user) => {
    res.statusCode=200;
    res.setHeader('Content-type', 'application/json');
    res.json('User already exists');
  }, (err) => next(err))
  .catch((err) => next(err));
})

Я пытался проверить, существует ли введенный номер aadhaar в базе данных (mongodb) или нет. Я сделал код, подобный приведенному выше, который возвращает меня всегда «пользователи уже существуют», даже несмотря на то, что номер aadhaar, который я разместил (через почтальона), не существует. По крайней мере, он должен вернуть любую ошибку (нет необходимости создавать).

Я даже использовал запрос findOne (), но не использовал.

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

На самом деле код необходимо изменить следующим образом: -

router.post('/uidcheck', async(req, res) => {
    try {
        const exists = await Register.findOne({ aadhaar : req.body.aadhaar})
        if(exists == null){
            res.statusCode = 200;
            res.setHeader('Content-type', 'application/json');
            res.json({success: true, status: 'You are allowed to register'});
        }else{
            res.statusCode=200;
            res.setHeader('Content-type', 'application/json');
            res.json({status: 'User already exists'});
        }
    }
    catch(error){
        res.status(500).send({message: "Error checking"});
    }
})

Я сделал несколько исправлений, он работал !

0 голосов
/ 28 апреля 2020

Вы будете go в блоке захвата, только если есть error. Ошибка похожа на сетевую ошибку.

Запрос БД о поиске пользователя и его отсутствии не является не ошибкой, т. Е. Ваш код все равно будет go до .then блок. Именно в этом .then блоке вы должны проверить

.then( (user) => {
  if (user) {
    // all ok
  } else {
    // there is no user
  }
}

и написать свою бизнес логи c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...