【发布时间】:2018-07-20 18:34:03
【问题描述】:
我的自定义验证器总是返回 true,尽管当结果不是未定义并且在这种情况下我返回 false 时
const validatorOptions = {
customValidators: {
not_exist: (inputParam) => {
let qry = 'select * from Users where email = ?';
let exist= db.query(qry, inputParam, (err, result) => {
if (err)
throw err;
if (result) {
console.log("Exist");
return false;
} else
return true;
});
return exist;
}
}
};
我尝试使用 Promise,但仍然无法正常工作。
const validatorOptions = {
customValidators: {
isUniqueEmail: (email) => {
function getRecord(email) {
return new Promise(function(resolve, reject) {
let qry = 'select * from Users where email = ?';
db.query(qry, email, (err, result) => {
if (err)
reject(err);
else {
resolve(result);
}
});
});
};
getRecord(email).then(function(res) {
return (res.length == 0);
}).catch((err) => { throw err; });;
}
}
};
req.checkBody('email', 'Email already exist').isUniqueEmail();
【问题讨论】:
-
尝试将结果返回为
Promise,而不是常规的return
标签: mysql node.js express express-validator