0
              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 我做错了什么?我正在尝试使用这个和蓝鸟,但没有任何效果:/

4

1 回答 1

0

你没有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
});
于 2017-04-04T22:41:18.113 回答