簡體   English   中英

每個驗證選項的 Joi 自定義錯誤

[英]Joi custom error for each validation option

我有Joi架構,想為每個選項指定一個自定義錯誤消息。

我的架構示例:

const schema = Joi.object().keys({
    name: Joi.string()
      .min(5).error(() => 'first message')
      .max(25).error(() => 'second message')
      .required().error(() => 'third message')
)}

目前,此驗證以這種方式工作:如果任何選項無效,則僅顯示第三條消息。

預期行為 - 根據哪個選項無效顯示錯誤消息(作為默認的 Joi 行為,但帶有我的自定義錯誤消息)。

謝謝你的問候!

const schema = Joi.object().keys({
title: Joi.string()
  .min(5)
  .max(25)
  .required()
  .messages({
  "string.min": "first msg",
  "string.max": "second msg",
  "any.empty":"third msg"
      })
  })

這些是顯示自定義錯誤消息的最佳方式

對於我的情況,我剛剛找到了這樣的解決方案:

const schema = Joi.object().keys({
    title: Joi.string()
      .min(5)
      .max(25)
      .required()
      .error((errors) => {
        return errors.map(error => {
          switch (error.type) {
            case "string.min":
              return { message: "first msg" };
            case "string.max":
              return { message: "second msg" };
            case "any.empty":
              return { message: "third msg" };
          }
        }
        )
      })

似乎不是最好的,因為它會導致太多的代碼,特別是如果你有很大的形式,但是它可以按我的意願工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM