gpt4 book ai didi

node.js - 如何在@hapi/joi中设置自定义错误消息?

转载 作者:行者123 更新时间:2023-12-02 18:33:40 24 4
gpt4 key购买 nike

我使用 Joi 创建了以下用于验证的架构:

const createProfileSchema = Joi.object().keys({
username: Joi.string()
.required()
.message("username is required")
.empty()
.message("username is not allowed to be empty")
.min(5)
.message("username must be greater than 5 characters")
.max(20)
.message("username must be less than 5 characters")
});

但它抛出了流动错误:

 Cannot apply rules to empty ruleset or the last rule added does not support rule properties

4 | username: Joi.string()
5 | .required()
> 6 | .message("username is required")
| ^
7 | .empty()
8 | .message("username is not allowed to be empty")
9 | .min(5)

实际上我想为每个单独的错误情况设置自定义消息。

最佳答案

您可以使用最新版本的 @hapi/joi 包尝试类似的操作。

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

const createProfileSchema = Joi.object().keys({
username: Joi.string()
.required()
.empty()
.min(5)
.max(20)
.messages({
"string.base": `"username" should be a type of 'text'`,
"string.empty": `"username" cannot be an empty field`,
"string.min": `"username" should have a minimum length of {#limit}`,
"string.max": `"username" should have a maximum length of {#limit}`,
"any.required": `"username" is a required field`
})
});

const validationResult = createProfileSchema.validate(
{ username: "" },
{ abortEarly: false }
);

console.log(validationResult.error);

详细信息可以在文档中找到:

https://github.com/hapijs/joi/blob/master/API.md#list-of-errors

关于node.js - 如何在@hapi/joi中设置自定义错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58408362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com