我在我的节点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请求时,它会在没有name
和lastName
字段的情况下将文档保存在mongoDB中,并且if(!user.name || !user.lastName)
无法避免它
答案 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'});
});
}