nodejs中的Joi模块错误返回提示如何改成中文

密码小于6位Joi的错误返回提示信息很不友好,怎么改成中文提示?

img

可以通过Joi的本地化设置来实现将错误提示信息改为中文。

具体的做法是:

1.安装joi的语言包:

npm install joi-locale-zh-cn --save

2.在项目中引入语言包,然后设置本地化:

const Joi = require('joi');
const zhCN = require('joi-locale-zh-cn');  // 引入语言包

// 设置本地化
Joi.locale('zh-cn', zhCN);

// 定义schema
const schema = Joi.object({
  password: Joi.string().pattern(new RegExp('SJ6,121$')).min(6).required(),
});

// 进行校验
const { error, value } = schema.validate({ password: '666' });

if (error) {
  console.log(error.details[0].message); // 输出中文提示信息
}


这样就可以将错误提示信息变成中文了,比如 "password" with value "666" fails to match the required pattern: /SJ6,121$/" 就会被翻译成 "password"的值"666"不符合要求的模式:/SJ6,121$/。

以下答案引用自GPT-3大模型,请合理使用:

示例。

在使用Joi模块的时候,如果密码小于6位会返回错误信息“password must be at least 6 characters long”。可以通过修改Joi的配置文件来改变这个错误信息。

配置文件位于/usr/local/lib/node_modules/joi/lib/joi.js。可以通过编辑这个文件来改变错误信息。

在配置文件中,可以找到“defaultValidationErrors”属性。可以通过修改这个属性来改变错误信息。

defaultValidationErrors属性的值是一个对象,可以通过这个对象来更改错误信息。

对象的“message”属性是错误信息的文本内容,可以通过修改这个属性来更改错误信息。

修改后的配置文件如下:

{ "defaultValidationErrors": { "message": "密码必须至少6个字符长", "type": "minLength" }, "password": { "required": true, "minLength": 6 } }

如果我的回答解决了您的问题,请采纳我的回答