2017-08-25 57 views
3

我有一个羽毛球API与messages service。我想用feathers-hooks-validate-joi模块验证消息模型。Joi验证feathersjs

这里是我的messages-hooks.js文件:

const validate = require('feathers-hooks-validate-joi'); 
const schema = require('./messages.validator'); 

module.exports = { 
    before: { 
    create: [validate.form(schema)], 
    //others method fields 
    }, 
    after: {...}, 
    error: {...} 
}; 

这里是我的messages.validator.js文件:

const Joi = require('joi'); 

const schema = Joi.object().keys({ 
    name: Joi.string().trim().min(2).required(), 
    text: Joi.string().trim().min(2).required() 
}); 

module.exports = {schema}; 

当我尝试通过卷曲发布一条消息:

curl 'http://localhost:3030/messages/' -H 'Content-Type: application/json' --data-binary '{ "name": "Hello", "text": "World" }'

我收到此错误消息:

{ 
    "name": "BadRequest", 
    "message": "Invalid data", 
    "code": 400, 
    "className": "bad-request", 
    "data": {}, 
    "errors": { 
    "name": "\"name\" is not allowed", 
    "text": "\"text\" is not allowed" 
    } 
} 

我错过了什么吗?我是否正确使用羽毛钩?

回答

0
module.exports = {schema}; 

这应该是:

module.exports = schema; 

不应该吗?

或者,你需要声明应改为:当我尝试你的解决方案,我得到这个错误消息

const {schema } = require('./messages.validator'); 
+0

:'{ “名”:“GeneralError”, “消息”:“无法读取属性'convert'of undefined“, ”code“:500, ”className“:”general-error“, ”data“:{}, ”errors“:{} } –

相关问题