Joi 承诺 ES 返回错误
Joi Promises with ES returning err
registerController.validate(request.payload).then((err) => {
if(err === null) {
reply(true);
}
});
validate: function (data) {
return new Promise ((resolve) => {
Joi.validate({
username: data.username,
password: data.password,
email: data.email
}, RegisterSchema,function () {
resolve(err);
});
});
}
我确定 err 为空 :D 我做错了什么?我正在尝试使用这个和蓝鸟,但没有任何效果:/
您还没有在任何地方声明 err
,所以它是 undefined
(并在严格模式下抛出)。大概你打算在回调中使用参数?
此外,你不应该 resolve
你的承诺有错误,你应该 reject
当有错误时它(否则就履行它)。所以使用
validate: function (data) {
return new Promise((resolve, reject) => {
Joi.validate(data, RegisterSchema, function(err) {
if (err) reject(err);
else resolve(true); // or a result if there is one?
});
});
}
registerController.validate(request.payload).then(reply, err => {
replyError(…) // or something
});
registerController.validate(request.payload).then((err) => {
if(err === null) {
reply(true);
}
});
validate: function (data) {
return new Promise ((resolve) => {
Joi.validate({
username: data.username,
password: data.password,
email: data.email
}, RegisterSchema,function () {
resolve(err);
});
});
}
我确定 err 为空 :D 我做错了什么?我正在尝试使用这个和蓝鸟,但没有任何效果:/
您还没有在任何地方声明 err
,所以它是 undefined
(并在严格模式下抛出)。大概你打算在回调中使用参数?
此外,你不应该 resolve
你的承诺有错误,你应该 reject
当有错误时它(否则就履行它)。所以使用
validate: function (data) {
return new Promise((resolve, reject) => {
Joi.validate(data, RegisterSchema, function(err) {
if (err) reject(err);
else resolve(true); // or a result if there is one?
});
});
}
registerController.validate(request.payload).then(reply, err => {
replyError(…) // or something
});