2017-08-25 2 views
3

J'ai une API feathersjs avec un messages service. Je veux valider le modèle de message avec le module feathers-hooks-validate-joi.Joi validation feathersjs

Voici mon messages-hooks.js fichier:

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

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

Voici mon fichier 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}; 

Lorsque je tente d'envoyer un message par boucle:

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

I recevez ce message d'erreur:

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

Ai-je raté quelque chose? Est-ce que j'utilise le crochet de plumes correctement?

Répondre

0
module.exports = {schema}; 

Cela devrait être:

module.exports = schema; 

devrait pas?

Sinon, votre require devrait être modifiée pour:

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

Quand j'essaie votre solution, je reçu ce message d'erreur: '{ "name": "GÉNÉRALError", "message": « Impossible de lire propriété 'convertir' de indéfini ", " code ": 500, " className ":" erreur générale ", " données ": {}, " erreurs ": {} }' –