node.js - 我可以在 MongoDB 中将所需属性设置为多语言吗
问题描述
我正在为 MongoDB 中的用户创建一个模式,我在这里面临的问题是网络应用程序将是多语言的,所以这意味着我正在后端更具体地在用户模式中进行验证,所以在必填字段和唯一如果出现问题,我会发送消息并将该消息显示给用户,因此如果用户使用不同语言的应用程序,是否可以从此处更改消息并显示给他。
这是我正在使用的架构:
const UserSchema = new Schema({
name: {
type: String,
trim: true,
required: "Name is required"
},
surname: {
type: String,
trim: true,
required: "Surname is required"
},
username: {
type: String,
trim: true,
unique: "Username already exist",
required: "Username is required"
},
email: {
type: String,
trim: true,
unique: "Email already exists",
match: [/.+\@.+\..+/, "Please fill a valid email address"],
required: "Email is required"
},
password: {
type: String,
required: "Password is required"
},
role: {
type: String,
trim: true,
required: "Role is required"
}
});
解决方案
const validationMessagesTranslation = (field, lang) => {
const validationMessages = {
"en": {
name: "Name is required",
surname: "Surname is required"
},
"fr": {
name: "Le nom est requis.",
surname: "Le nom de famille est requis."
}
}
return validationMessages[lang][field];
}
您可以创建一个函数,其中包含您需要的所有翻译的枚举。将该函数传递给required
模型的值。
推荐阅读
- python - 使用 scikit-learn 特征提取模块进行 tf-idf 计算
- spring-data-jpa - Spring DataJPA:这是一种什么样的关系,我该如何映射它
- hyperledger-fabric - Hyperledger genesis.block 和 TLS CA 证书
- python - Python 列表范围访问作为环形缓冲区
- python - Python-是否可以将本地文件上传到服务器
- spring-boot - 计划作业正在杀死 Spring Boot 应用程序
- php - NAS Synology,使用 apache .htaccess 进行 url-rewrite
- node.js - Socket.io 监听端口不工作
- wireframe - 是否可以将 html 页面导入 Balsamiq?
- java - if 语句中的变量未正确计数