首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Joi验证feathersjs

Joi验证feathersjs
EN

Stack Overflow用户
提问于 2017-08-25 17:34:59
回答 1查看 654关注 0票数 4

我有一个带messages service的feathersjs。我想用feathers-hooks-validate-joi模块验证消息模型。

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

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
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" }'

我收到此错误消息:

代码语言:javascript
复制
{
  "name": "BadRequest",
  "message": "Invalid data",
  "code": 400,
  "className": "bad-request",
  "data": {},
  "errors": {
    "name": "\"name\" is not allowed",
    "text": "\"text\" is not allowed"
  }
}

我是不是遗漏了什么?我使用羽毛钩正确吗?

EN

回答 1

Stack Overflow用户

发布于 2017-08-25 17:57:36

代码语言:javascript
复制
module.exports = {schema};

这应该是:

代码语言:javascript
复制
module.exports = schema;

不是吗?

或者,您的require语句应该改为:

代码语言:javascript
复制
const {schema } = require('./messages.validator');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45878534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档