Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Joi(Node.js)中的外部函数进行验证_Node.js_Validation_Joi - Fatal编程技术网

使用Joi(Node.js)中的外部函数进行验证

使用Joi(Node.js)中的外部函数进行验证,node.js,validation,joi,Node.js,Validation,Joi,我正在Node.js Rest API中使用Joi进行验证。我有一个验证特定文档的函数,我想知道是否可以将该函数包括在Joi的验证中 例如: function validateDocument (document) { return someCalculation; } const schema = Joi.object({ document: Joi.string().required().valid(validateDocument) // I want something

我正在Node.js Rest API中使用Joi进行验证。我有一个验证特定文档的函数,我想知道是否可以将该函数包括在Joi的验证中

例如:

function validateDocument (document) {
    return someCalculation;
}

const schema = Joi.object({
    document: Joi.string().required().valid(validateDocument) // I want something like that
});

const { error, value } = schema.validate(something);
对。您可以使用调用外部函数进行验证。下面给出了一个示例格式:

const customSchema = Joi.extend(joi => ({
    base: joi.string(),
    name: 'customValidation',
    rules: [
        {
            name: 'validate',
            validate(params, value, state, options) {
                // call custom function and return the result
                // for instance:
                return validateDocument(value);
            },
        },
    ],
}));