Проверка Joi.

У меня есть перьевой API с messages service. Я хочу проверить модель сообщения с помощью модуля 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"
  }
}

Я что-то упускаю? Правильно ли я использую крючок для перьев?


person louis amoros    schedule 25.08.2017    source источник


Ответы (1)


module.exports = {schema};

Это должно быть:

module.exports = schema;

не так ли?

В качестве альтернативы ваш оператор require следует изменить на:

const {schema } = require('./messages.validator');
person Linus Borg    schedule 25.08.2017
comment
Когда я пробую ваше решение, я получаю это сообщение об ошибке: { "name": "GeneralError", "message": "Cannot read property 'convert' of undefined", "code": 500, "className": "general-error", "data": {}, "errors": {} } - person louis amoros; 25.08.2017