2017-08-25 4 views
3

Ich habe eine Feathersjs API mit einer messages service. Ich möchte das Nachrichtenmodell mit feathers-hooks-validate-joi Modul validieren.Joi Validierung Feathersjs

Hier ist meine messages-hooks.js Datei:

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

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

Hier ist meine messages.validator.js Datei:

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}; 

Wenn ich versuche, eine Nachricht über curl schreiben:

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

I erhalten Sie diese Fehlermeldung:

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

Fehle ich etwas? Benutze ich den Federnhaken richtig?

Antwort

0
module.exports = {schema}; 

sollte sein: es

module.exports = schema; 

sollte nicht?

Alternativ erfordern Ihre Aussage geändert werden sollte:

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

Wenn ich Ihre Lösung versuche ich diese Fehlermeldung bekommen: '{ "name": "GeneralError", "message":„Kann nicht lesen property 'convert' von undefined ", " code ": 500, " className ":" allgemeiner Fehler ", " Daten ": {}, " Fehler ": {} }' –