美好的一天,這就是我想要做的,我正在嘗試驗證用戶名并確認資料庫中沒有其他用戶名,我想我找到了解決方案。我相信我將 false 回傳到驗證器,但回應仍然發布到資料庫。如果我需要提供更多讓我知道
const userSchema = new Mongoose.Schema (
{
playerName : {
type: String,
required: (true, "No Name Specified"),
validate: {
validator(val) {
value = true
User.findOne( { "playerName" : val}, function(err, result) {
if (result != null) {
value = false
}
})
return value
},
message: "playerName already Exsits"
}
},
先感謝您
uj5u.com熱心網友回復:
問題是您的驗證器沒有等待回應,而是return value在 callback 之前到達(這是真的)value = false。
所以你需要一個async像這樣的驗證器:
const userSchema = new Mongoose.Schema({
playerName: {
type: String,
required: (true, "No Name Specified"),
validate: {
async validator(val) {
const result = await User.findOne({
"playerName": val
})
return result == null ? true : false
},
message: "playerName already Exsits"
}
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365113.html
標籤:猫鼬
