我已经挣扎了很长一段时间,我可能只是疯了。我正在运行mongoose 4.11.4而我正在尝试创建一个基本的更新端点,以便我可以更新用户的名字和/或姓氏,它看起来像这样:
app.put('/api/user',function(req,res){
User.findByIdAndUpdate(
mongoose.Types.ObjectId(req.body.id),
{
$set:{
firstName:req.body.firstName,
lastName:req.body.lastName
}
},
{
new:true,
runValidators:true
},
function(error,user){
if(error){
res.json(error);
} else {
res.json(user);
}
});
});
我有runValidators为true,我明确使用$ set。关于名字和姓氏的模式的相关部分如下所示:
firstName: {
type:String,
required:true,
match:[
new RegExp("[a-zA-Z]"),
"First name only allows letters!"
]
},
lastName: {
type:String,
required:true,
match:[
new RegExp("[a-zA-Z]"),
"Last name only allows letters!"
]
}
但我的正则表达式匹配永远不会得到验证,但如果我只是从我的请求中留下第一个或最后一个名称,那么唯一的验证器会检查并失败。我不知所措,我错过了一些非常明显的东西吗?