簡體   English   中英

如何使用 Joi 自定義錯誤消息?

[英]How to make custom error message using Joi?

如何使用 joi 制作自定義消息? 我看到很多與此相關的已回答問題,但我不知道為什么它在我這邊不起作用,總是出現錯誤消息是“學生”不包含 1 個必填值我想要的是“學生”這個字段是必需的。

export const VALIDATION_SCHEMA = {
  students: Joi.array()
    .label('Student Name(s)')
    .items(
      Joi.object({
        name: Joi.string(),
        value: Joi.string()
      }).required().messages('"Student" This field is required.')
    ),
}

您可以使用錯誤構造函數返回自定義錯誤 object,如下所示:

 var schema = Joi.object().keys({
    firstName: Joi.string().min(4).max(8).required().error(new 
 Error('error message here for first name')),
    lastName: Joi.string().min(5).max(1).required().error(new 
 Error('error message here for last name'))
    });

 Joi.validate(req.body, schema, function(err, value) {
    if (err) {
        console.log(err.message)
        return catched(err.message); 
        }
   });

我認為最簡單的方法就是這個。

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

export const categorySchema = Joi.object({
    mobile: Joi.string().trim().regex(/^[6-9]\d{9}$/).required().messages({
        "string.base": `"" should be a type of string`,
        "string.empty": `"" must contain value`,
        "string.pattern.base": `"" must be 10 digit number`,
        "any.required": `"" is a required field`
    }),
    password: Joi.string().trim().required().messages({
        "string.base": `"" should be a type of 'text'`,
        "string.pattern.base": `"" must be 10 digit number`,
        "any.required": `"" is a required field`
    }),
}).required();

暫無
暫無

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

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