简体   繁体   English

检查猫鼬的空白字段

[英]Check empty fields on mongoose

I have this function on my node REST API 我在我的节点REST API上有这个功能

var router = express.Router();

/*router.get('/getUsers', function(req, res) {
    res.json({ message: 'hooray! welcome to our api!' });
});*/

router.route('/Users')
  .get(function(req,res){
      User.find(function(err,users){
        if(err)
          res.send(err);

        console.log('GET request');
        res.json(users);
      });
})
  .post(function(req,res){
      var user = new User();
      user.name = req.body.name;
      user.lastName = req.body.lastName;

      if(!user.name || !user.lastName){
        user.save(function(err){
          if(err)
            res.send(err);

          console.log('POST request');
          res.json({message:'Usuario creado'});
        });
      }else{
        res.json({message:'Campos vacíos'});
      }

  });

It works but when I a send a POST request with empty parameters it saves a document in mongoDB without the name and lastName fields and if(!user.name || !user.lastName) doesn't work to avoid it 它工作,但当我发送一个带有空参数的POST请求时,它会在mongoDB中保存一个文件而没有namelastName字段, if(!user.name || !user.lastName)不能避免它

Well
if (!user.name || !user.lastName) ...
checks that at least one of both must be empty / null / undefined and only then saves it - exactly what you describe as your problem :) 检查两者中的至少一个必须为空/ null / undefined ,然后才保存它 - 正是你所描述的问题:)

So I guess you want something like 所以我猜你想要的东西

if(user.name && user.lastName)...  

Or alternatively swap the code blocks in if / else branch 或者在if / else分支中交换代码块

if(!user.name || !user.lastName){
  res.json({message:'Campos vacíos'});
}else{
  user.save(function(err){
    if(err)
      res.send(err);
    console.log('POST request');
    res.json({message:'Usuario creado'});
  });
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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