【问题标题】:Promisify Joi: compile is undefinedPromisify Joi:编译未定义
【发布时间】:2019-03-04 04:06:17
【问题描述】:

我想承诺 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

你知道我怎样才能实现它吗? 谢谢

【问题讨论】:

  • 共享完整的错误堆栈

标签: express joi


【解决方案1】:

问题是在承诺过程中上下文丢失了。所以试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2013-03-07
    • 2014-07-25
    • 2013-10-22
    相关资源
    最近更新 更多