我有一个带有messages service
的feathersjs API。我想用feathers-hooks-validate-joi
模块验证消息模型。
这是我的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发布消息时:
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 :(得分:0)
module.exports = {schema};
这应该是:
module.exports = schema;
不应该吗?
或者,您的require语句应更改为:
const {schema } = require('./messages.validator');