javascript - 如何在 Express 中验证模式?
问题描述
我有以下模型。我希望caraoCidadao遵循 8 个数字字符串的模式(例如:12345678),并且estado只能采用两个可能的值(infetado 和 suspeito)。我怎样才能进行验证?
var userSchema = new Schema({
cartaoCidadao: {
type: String,
required: true,
index: {
unique: true,
},
},
password: { type: String ,required:true},
role: { type: String },
estado:{type:String}
});
解决方案
mongoose中有一些内置的验证器。
所以对于estado
只能有两个可能的值('infetado' 和 'suspeito'),你可以使用enum
:
estado:{
type:String;
/* enum validator */
enum: ['infetado', 'suspeito']
}
对于cartaoCidadao
,一个正好有 8 个数字的字符串,你可以使用match
:
cartaoCidadao: {
type: String,
required: true,
index: {
unique: true,
},
/* match (RegExp) validator */
match: /[0-9]{8}/
}
推荐阅读
- php - Php - 如何在不设置路由的情况下接收简单的帖子正文?
- javascript - 如何在 Nuxt 中动态注入样式?
- vmware - 在 PowerCLI 中将主机名添加到 Get-Datastore 命令的输出
- llvm - 如何让 ScalarEvolution 重新计算 SCEV 值?
- docker - 错误:Kubernetes 集群中的 Heartbeat 日志中没有这样的主机
- python - ValueError:无法将字符串转换为浮点数:'HH_Income'
- java - 单击按钮时未开始下载
- javascript - 使用 gatsby-plugin-page-creator 在 mdx 文件中使用 gatsby-image
- javascript - Html 语言如何将文本更改为 LINK
- ms-word - 如何使用 Javascript API 在 Office 加载项中编辑 OOXML