检查mongodb中是否存在数字

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() 查询,但没有用。


慕虎7371278
浏览 98回答 2
2回答

手掌心

实际上代码需要像这样更改:-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"});    }})我做了一些更正,它有效!

慕容森

只有在有error. 错误就像网络错误。要求数据库找到一个用户并且它没有找到一个用户并不是一个错误,即你的代码仍然会进入.then块。您应该在此.then块中检查.then( (user) => {  if (user) {    // all ok  } else {    // there is no user  }}并编写您的业务逻辑。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript