为了账号安全,请及时绑定邮箱和手机立即绑定

检查mongodb中是否存在数字

检查mongodb中是否存在数字

慕虎7371278 2022-07-21 10:55:41
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 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

实际上代码需要像这样更改:-


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"});

    }

})

我做了一些更正,它有效!


查看完整回答
反对 回复 2022-07-21
?
慕容森

TA贡献1853条经验 获得超18个赞

只有在有error. 错误就像网络错误。


要求数据库找到一个用户并且它没有找到一个用户并不是一个错误,即你的代码仍然会进入.then块。您应该在此.then块中检查


.then( (user) => {

  if (user) {

    // all ok

  } else {

    // there is no user

  }

}

并编写您的业务逻辑。


查看完整回答
反对 回复 2022-07-21
  • 2 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信