gpt4 book ai didi

mongoose - 在 Mongoose 中,如何要求字符串字段不为空或未定义(允许 0 长度字符串)?

转载 作者:行者123 更新时间:2023-12-02 22:02:42 25 4
gpt4 key购买 nike

我已经尝试过这个,它允许 nullundefined 和完全省略要保存的 key :

{
myField: {
type: String,
validate: value => typeof value === 'string',
},
}

这个不允许保存''(空字符串):

{
myField: {
type: String,
required: true,
},
}

如何在 Mongoose 中强制字段为 String 并且存在且既不是 null 也不是 undefined 且不允许空字符串?

最佳答案

通过将所需字段设置为条件,可以实现以下目的:

const mongoose = require('mongoose');

var userSchema = new mongoose.Schema({
myField: {
type: String,
required: isMyFieldRequired,
}
});

function isMyFieldRequired () {
return typeof this.myField === 'string'? false : true
}

var User = mongoose.model('user', userSchema);

这样,new User({})new User({myField: null}) 将抛出错误。但空字符串可以工作:

var user = new User({
myField: ''
});

user.save(function(err, u){
if(err){
console.log(err)
}
else{
console.log(u) //doc saved! { __v: 0, myField: '', _id: 5931c8fa57ff1f177b9dc23f }
}
})

关于mongoose - 在 Mongoose 中,如何要求字符串字段不为空或未定义(允许 0 长度字符串)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320745/

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