Promisify Joi:编译未定义
Promisify Joi: compile is undefined
我想承诺Joi.validate。
原函数为:
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));
我想承诺Joi.validate。
原函数为:
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));