检查猫鼬的空白字段

时间:2016-07-14 16:52:36

标签: javascript node.js mongodb mongoose

我在我的节点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'});
      }

  });

它可以正常工作,但是当我发送一个带有空参数的POST请求时,它会在没有namelastName字段的情况下将文档保存在mongoDB中,并且if(!user.name || !user.lastName)无法避免它

1 个答案:

答案 0 :(得分:0)


if (!user.name || !user.lastName) ...
检查两者中的至少一个必须为空/ null / undefined并且只保存它 - 正是您描述的问题:)

所以我想你想要像

这样的东西
if(user.name && user.lastName)...  

或者交换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'});
  });
}