1

プロパティに独自のカスタム検証があり、他のフィールドで返される JOI.validation と同様の 400 応答を返したいと考えています。これは、エラーとメッセージに加えて、検証プロパティも返したいということです。これにより、クライアントはどのフィールドを強調表示するかを知ることができます。

だから、これの代わりに

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "phone validation error: invalid phone number"
}

これで返信したいと思います

{
    "statusCode": 400,
     "error": "Bad Request",
     "message": "phone validation error: invalid phone number"
     "validation": {
     "source": "payload",
      "keys": [
            "phone"
      ]

}

ハピ返信に検証を追加するにはどうすればよいですか?

私はこれを行ってきました-それは機能していません

        e.validation =
        {
            source: "payload",
            keys: [
                "phone"
            ]
        }
        reply(Boom.badRequest(e));

また、Joi 用のカスタム バリデータを使用できないと想定しています。それ以外の場合は、Joi を拡張しただけです。しかし、応答でJoiのようなオブジェクト構造を取得するために応答で使用できるJoi検証エラータイプまたはオブジェクトはありますか?

ところで、私の電話検証は単純な正規表現ではなく、特殊なケースがあるため、正規表現バリデーターに組み込まれている Joi を使用できません。

4

2 に答える 2

0

boom.badRequest('some message') によって返されたオブジェクトを調べると、次のようになります。

{ data: null,
  isBoom: true,
  isServer: false,
  output:
   { statusCode: 400,
     payload:
      { statusCode: 400,
        error: 'Bad Request',
        message: 'some message' },
     headers: {} },
  reformat: [Function] }

したがって、実際には次のようなことをする必要があります

var errObj = Boom.badRequest(e);
errObj.output.payload.validation =
{
  source: "payload",
  keys: [
    "phone"
  ]
}
reply(errObj);
于 2015-06-08T15:03:57.757 に答える
0

これを試して:

var errObj = Boom.badRequest(e);
errObj.validation =
    {
        source: "payload",
        keys: [
            "phone"
        ]
    }
reply(errObj);
于 2015-05-19T09:48:38.093 に答える