Express Promisify Joi:未定义编译
我想答应你 最初的功能是:Express Promisify Joi:未定义编译,express,joi,Express,Joi,我想答应你 最初的功能是: Joi.validate(message, schema, (err, success) => {}) 我试着做: const Joi = require('joi'); const Promise = require('bluebird'); const validate = Promise.promisify(Joi.validate); 我打电话给你: validate(message, schema) .then(() => console.l
Joi.validate(message, schema, (err, success) => {})
我试着做:
const Joi = require('joi');
const Promise = require('bluebird');
const validate = Promise.promisify(Joi.validate);
我打电话给你:
validate(message, schema)
.then(() => console.log('ok'))
.catch(err => console.log('ERRRR', err.message));
但我收到了这个错误:
Cannot read property 'compile' of undefined
你知道我怎样才能做到吗?
谢谢问题在于,在承诺过程中,上下文丢失了。所以试试这个:
const validate = Promise.promisify(Joi.validate).bind(Joi);
validate(message, schema)
.then(() => console.log('ok'))
.catch(err => console.log('ERRRR', err.message));
或者这个:
const pJoi = Promise.promisifyAll(Joi);
pJoi
.validate(message, schema)
.then(() => console.log('ok'))
.catch(err => console.log('ERRRR', err.message));
问题在于,在承诺过程中,语境丢失了。所以试试这个:
const validate = Promise.promisify(Joi.validate).bind(Joi);
validate(message, schema)
.then(() => console.log('ok'))
.catch(err => console.log('ERRRR', err.message));
或者这个:
const pJoi = Promise.promisifyAll(Joi);
pJoi
.validate(message, schema)
.then(() => console.log('ok'))
.catch(err => console.log('ERRRR', err.message));
共享完整错误堆栈共享完整错误堆栈