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
});