【问题标题】:node hapi rest put update joi validate only if present节点 hapi rest put 更新 joi 仅在存在时验证
【发布时间】:2016-02-21 09:35:18
【问题描述】:

我正在尝试使用 joi 包在 Hapi Node 服务器中验证我的 POST 和 PUT 请求。

方法对吗?

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

【问题讨论】:

    标签: node.js hapijs joi


    【解决方案1】:

    当然,您可以模块化您的验证检查。

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

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

    【讨论】:

      猜你喜欢
      • 2018-09-24
      • 2013-10-19
      • 2019-10-10
      • 2020-05-30
      • 2018-05-25
      • 2018-07-25
      • 1970-01-01
      • 2018-06-25
      • 2015-04-29
      相关资源
      最近更新 更多