2017-12-12 1 views
3

Ich bin neu zu Hapi und ich begann mit einfachen Formular einreichen und müssen meine Formulardaten validieren. Dafür habe ich Funktionalität mit dem Modul "joi" bekommen. Aber mit Joi-Modell, wie kann ich meine Daten durch Regex Validierung auf Zeichenfolgen wie Benutzername und Passwort mit einem vorgegebenen Format validieren.Wie validiere ich Anfrage Parameter in Hapi und Joi mit Regex

Antwort

3

können Sie wie diese diese

joi link on github
joi

var schema = Joi.object().keys({ 
     username: Joi.string().regex(/[a-zA-Z0-9]{3,30}/).min(3).max(30).required(), 
     password: Joi.string().regex(/[a-zA-Z0-9]{3,30}/), 
     confirmation: Joi.ref('password') 
     }) 
     .with('password', 'confirmation'); 

    // will fail because `foo` isn't in the schema at all 
    Joi.validate({foo: 1}, schema, console.log); 

    // will fail because `confirmation` is missing 
    Joi.validate({username: 'alex', password: 'qwerty'}, schema, console.log); 

    // will pass 
    Joi.validate({ 
     username: 'alex', password: 'qwerty', confirmation: 'qwerty' 
    }, schema, console.log); 
+0

Dank Manjeet für deine Antwort. es funktioniert für mich und hoffe, dass diese Frage auch für andere hilfreich sein wird. – Jitendra

+1

Momentan wird die Nachricht angezeigt, dass beispielsweise "userName mit dem Wert je $ nicht mit dem erforderlichen Muster übereinstimmt:/[a-zA-Z0-9 {3,30} /]". kannst du mir sagen, wie ich meine eigene benutzerdefinierte Nachricht an der Stelle davon einstellen kann. – Jitendra

+0

Danke @Jiten. Hier können Sie [https://github.com/hapijs/joi/blob/master/examples/customMessage.js](https://github.com/hapijs/joi/blob/master/examples/customMessage.js) nachsehen. –

0

Versuchen verwenden:

var Joi = require('joi') 

server.route({ 
    method: 'POST', 
    path: '/', 
    config: { 
    handler: function (request, reply) { 
     // do any processing 

     reply('Your response data') 
    }, 
    validate: { 
     payload: { 
     email: Joi.string().email().required(), 
     password: Joi.string().min(6).max(200).required() 
     } 
    } 
    } 
}) 
Verwandte Themen