我有一个控制器,可以在保存到数据库之前验证每个数据,但我不知道在poster上测试时它发生了什么。每次当我尝试测试我的api时,我都会让一些数据为空,但我的服务器会崩溃。有人能向我解释一下我的验证有什么问题吗?并给我一些建议或建议。
// create new car
export async function createCar (req, res) {
// My validate request
if (!req.body.name) {
res.status(400).send({
message: "Name can not be empty!"
});
//return;
} else if (!req.body.color){
res.status(400).send({
message: "Color can not be empty!"
});
} else if (!req.body.brand) {
res.status(400).send({
message: "Brand can not be empty!"
});
//return;
}
// Every time i try to empty some data, my server gonna crash. i need a suggestions for this //issue
const car = new Car({
car_id: id,
name: req.body.name,
color: req.body.color,
brand: req.body.brand,
});
return car
.save()
.then((newCar) => {
return res.status(201).json({
success: true,
message: 'New car created successfully',
Car: newCar,
});
})
.catch((error) => {
console.log(error);
res.status(500).json({
success: false,
message: 'Server error. Please try again.',
error: error.message,
});
});
}
这不是验证进入服务器的数据的正确方法
您应该使用某种验证器来验证数据,并且有许多库可以用于验证
例如:快速验证器
if (!req.body.name) {
res.status(400).send({
message: "Name can not be empty!"
});
return;
} else if (!req.body.color){
res.status(400).send({
message: "Color can not be empty!"
});
return;
} else if (!req.body.brand) {
res.status(400).send({
message: "Brand can not be empty!"
});
return;
}