在hapi / joi中。如何将两种不同的模式验证结合在一起?

反应

这就是我在做什么:

import Joi, { AnySchema } from '@hapi/joi';

export const apiExtraInfo = (): AnySchema => {
  return Joi.object({
    message: Joi.string(),
    apiVersion: Joi.string()
  });
};

export const normalizeContentSchema = (): AnySchema => {
  return Joi.object({
    ...apiExtraInfo(),
    facets: Joi.object(),
    count: Joi.number().required(),
    content: Joi.array().items(Joi.object()).required()
  });
};

该模式apiExtraInfo将用于许多不同的模式,所以我不想重复自己。

我这样做的方式使我的架构失败了。

https://hapi.dev/module/joi/

有什么建议?

丹尼斯·蔡

分隔api_schema和组成的对象api_schema(以下定义为api_schema_definition)。

这是因为Joi模式仅接受纯对象。

(使用quokka.js测试)

const Joi = require("@hapi/joi");

const test_api_ok = {
  message: "hello",
  apiVersion: "any",
};

const test_normalize = {
  message: "hello",
  apiVersion: "any",
  facets: {},
  count: 1,
  content: [{}],
};

const api_schema_definition = () => ({
  message: Joi.string(),
  apiVersion: Joi.string(),
});

const api_schema = Joi.object({
  ...api_schema_definition(),
});

const joined_schema = Joi.object({
  ...api_schema_definition(),
  facets: Joi.object(),
  count: Joi.number().required(),
  content: Joi.array().items(Joi.object()).required(),
});

joined_schema.validate(test_normalize); //?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

嵌套对象的Hapi / Joi验证

来自分类Dev

在Hapi中访问FormData

来自分类Dev

hapi joi如何验证可选参数

来自分类Dev

如何将两个不同查询的结果与猫鼬结合在一起?

来自分类Dev

如何将这两个查询结合在一起?(MySQL)

来自分类Dev

Hapi Joi多个替代比赛

来自分类Dev

如何将两个数据框与R中的项目数量结合在一起?

来自分类Dev

如何将列与R中的条件结合在一起?

来自分类Dev

如何访问hapi插件名称?

来自分类Dev

如何扩展 Hapi 类型 [Typescript]

来自分类Dev

在Hapi中设置缓存头

来自分类Dev

hapi route joi密码确认验证

来自分类Dev

描述性Hapi / Joi验证错误

来自分类Dev

如何在hapi.js中实现Joi验证?

来自分类Dev

如何将两个下一个结合在一起

来自分类Dev

如何将不同的数组值与通用键结合在一起

来自分类Dev

如何将手势和动画结合在一起

来自分类Dev

如何将事件侦听器与事件的“询问”结合在一起?

来自分类Dev

如何将原位转换和复制转换结合在一起?

来自分类Dev

如何将镜头和函子结合在一起?

来自分类Dev

如何将LINQ组和排序与父子表结合在一起?

来自分类Dev

如何将python asyncio与线程结合在一起?

来自分类Dev

如何将DAO和GUI与MVC结合在一起

来自分类Dev

如何将.toggleClass()与.appendTo()结合在一起?

来自分类Dev

如何将Axios调用循环与等待功能结合在一起?

来自分类Dev

如何将RequireJS路径和require-css结合在一起?

来自分类Dev

如何将数据框总结为与ID结合在一起的列表?

来自分类Dev

如何将Bash的流程替换与HERE文档结合在一起?

来自分类Dev

如何将DataTables与其他匹配器结合在一起?

Related 相关文章

热门标签

归档