Node.js expressjsapi将插入数据保留到DB eventhough Req中';t通过验证
我使用ExpressJS构建的API已经成功地在db中创建了数据,但是我的API仍然在db中创建数据,尽管req没有通过验证。 这是我的控制器:Node.js expressjsapi将插入数据保留到DB eventhough Req中';t通过验证,node.js,express,Node.js,Express,我使用ExpressJS构建的API已经成功地在db中创建了数据,但是我的API仍然在db中创建数据,尽管req没有通过验证。 这是我的控制器: module.exports = { validate: function (method){ switch (method) { case 'personalInfo': { return [ body('email').not()
module.exports = {
validate: function (method){
switch (method) {
case 'personalInfo': {
return [
body('email').not().isEmpty().isEmail().normalizeEmail().withMessage('Your email is not valid')
]
}
}
},
createNewPersonalData: function (req, res) {
const errors = validationResult(req).formatWith(utils.validationFound);
if(!errors.isEmpty()){
res.status(300).json(errors.array());
}
var name = req.body.name,
email = req.body.email;
PersonalInfo.create({
name : name,
email : email
})
.then(Personal_Info => {
res.json({
'status': 'OK',
'messages': 'Personal Info Created',
'data': Personal_Info
})
});
}
}
如果我发送请求,例如:
{
"name": "John",
"email": "john"
}
API应按如下方式发送响应:
{
"message": "Your email is not valid",
"param": "email",
}
我的问题是API不断地将数据创建到db event中,尽管像上面的例子一样有req和res
谢谢您需要
返回
以停止进一步执行
if(!errors.isEmpty()) {
return res.status(300).json(errors.array());
}
您需要
返回
以停止进一步执行
if(!errors.isEmpty()) {
return res.status(300).json(errors.array());
}
您应该将create调用包装在else块中
createNewPersonalData: function (req, res) {
const errors = validationResult(req).formatWith(utils.validationFound);
if(!errors.isEmpty()){
res.status(300).json(errors.array());
} else {
var name = req.body.name,
email = req.body.email;
PersonalInfo.create({
name : name,
email : email
})
.then(Personal_Info => {
res.json({
'status': 'OK',
'messages': 'Personal Info Created',
'data': Personal_Info
})
});
}
}
您应该将create调用包装在else块中
createNewPersonalData: function (req, res) {
const errors = validationResult(req).formatWith(utils.validationFound);
if(!errors.isEmpty()){
res.status(300).json(errors.array());
} else {
var name = req.body.name,
email = req.body.email;
PersonalInfo.create({
name : name,
email : email
})
.then(Personal_Info => {
res.json({
'status': 'OK',
'messages': 'Personal Info Created',
'data': Personal_Info
})
});
}
}
谢谢,这是工作。但是在发送回复时使用return是可以的吗?谢谢,这是工作。但在发送响应时使用return可以吗?