Node.js 节点hapi rest put更新joi仅在存在时验证

Node.js 节点hapi rest put更新joi仅在存在时验证,node.js,hapijs,joi,Node.js,Hapijs,Joi,我试图通过使用joi包验证我的帖子并将请求放入Hapi节点服务器 这条路对吗 'use strict'; var Joi = require('joi'), Id = Joi.number().positive().required(), Firstname = Joi.string().min(3).max(15), Lastname = Joi.string().min(3).max(15), Email = Joi.string().email(),

我试图通过使用joi包验证我的帖子并将请求放入Hapi节点服务器

这条路对吗

'use strict';

var Joi = require('joi'),
    Id = Joi.number().positive().required(),
    Firstname = Joi.string().min(3).max(15),
    Lastname = Joi.string().min(3).max(15),
    Email = Joi.string().email(),
    Username = Joi.string().min(3).max(15);


exports.create = {
    payload: {
        firstname: Firstname.required(),
        lastname: Lastname.required(),
        email: Email.required(),
                username: Username.required()
    }
};
exports.findById = {
    params: {
        userId: Id
    }
};
exports.update = {
    params: {
        userId: Id
    },
    payload:   Joi.object().keys({
        firstname: Firstname,
        lastname: Lastname,
        email: Email,
                username: Username
    }).or('firstname','lastname','email','username')
};

当然,您可以进行验证检查

通过您的配置,您应该能够像这样使用它:

server.route({
  method: 'POST',
  path: '/find/{userId}',
  config: {
    validate: {
        findById  // this is defined by your code => exports.findById
    },
    handler: function (req, reply) {
        reply({
            receivedUserId: req.params.userId
        })
    }
  }
});