ノードアプリケーションにJoiを実装しようとしています(joiはhapiではなくスタンドアロンとして)、スキーマを適切に検証しているようですが、エラーは常に同じです
[ValidationError: value must be an object]
name: 'ValidationError',
details:
[ { message: 'value must be an object',
path: 'value',
type: 'object.base',
context: [Object] } ],
_object:.....
失敗したキーの詳細と、失敗した理由の説明を取得できません。
これは私が使用しているサンプルスキーマです:
exports.workersSchema =
{
workers: joi.array({
id: joi.string().alphanum(),
wID: joi.object({
idValue: joi.string().alphanum()
}),
person: {
governmentIDs: joi.array({itemID: joi.string().alphanum()}),
legalName: joi.object({
givenName: joi.string(),
middleName: joi.string(),
preferredSalutations: joi.array(
{
salutationCode: {
longName: joi.string()
}
}
),
preferredName: joi.object().keys({
FormattedName: joi.string()
}),
}),
birthDate: joi.string().alphanum()
}
})
}
そして、これは私が送信しているjsonオブジェクトです:
{"workers" : [
{
"id" : "",
"wID" : {
"idValue" : ""
},
"person" : {
"governmentIDs":[{
"itemID": "asd"
}],
"legalName":{
"givenName" : "PA",
"middleName" : "",
"preferredSalutations" : [{
"salutationCode" : {
"longName" : ""
}
}],
"preferredName" : {
"FormattedName" : ""
},
"birthDate" : ""
}]
}
ここで何が間違っていますか?ブログで何かをフォローしようとさえしましたが、例には詳細な情報が表示されていましたが、それ以外は何も得られませんでした
"value must be an object"
それは正しく検証されますが、不適合な値が表示されると、そのエラーだけが表示され、他には何も表示されません。
また、「wID」セクションを見ると、「idValue」オブジェクトがありますが、idValue を取り除き、wID キーに英数字を付けると、検証にも合格します。
ps。オブジェクトであるキーを検証する場合。で検証する必要がありますか
key: Joi.object({
a:Joi.string()
})
または私はただ行うことができますか?:
key: {
a:Joi.string()
}
助けてくれてありがとう!