Mongodb 向my API发送修补程序请求时,getUpdate处理程序会对架构中所需的字段抛出验证错误
//下面的代码可以工作,但我不满意。如果没有显示的修复,它将抛出验证错误Mongodb 向my API发送修补程序请求时,getUpdate处理程序会对架构中所需的字段抛出验证错误,mongodb,mongoose,keystonejs,Mongodb,Mongoose,Keystonejs,//下面的代码可以工作,但我不满意。如果没有显示的修复,它将抛出验证错误 exports.update = function(req,res) { List.model.findById(req.params.id).exec(function(err, item) { if (err) return res.apiError('database error', err); if (!item) return res.apiError('not fou
exports.update = function(req,res) {
List.model.findById(req.params.id).exec(function(err, item) {
if (err) return res.apiError('database error', err);
if (!item) return res.apiError('not found');
//在这里,我尝试了补丁和帖子
var data = (req.method == 'PATCH') ? req.body : req.query;
//我添加这行代码是为了修复错误
if (!data.email) {
data.email = item.email
}
//getUpdateHandler正在抛出错误
item.getUpdateHandler(req).process(data, function(err) {
//这是我的邮递员请求
/api/item/update/58814243317de2ce8d8090fd
//这是我在删除上述修复程序时的错误
{
"error": "create error",
"detail": {
"message": "Validation failed",
"name": "ValidatorError",
"errors": {
"email": {
"name": "ValidatorError",
"path": "email",
"message": "Email is required",
"type": "required"
}
}
}
}
//更新。我的问题:在get req上设置布局时,我没有将所需的值传递给表单。因此,未更新的值被发布为null。如果是必填字段,则会引发错误。修复了您可以通过向更新处理程序传递
选项来为其提供要处理的字段列表。字段
(请参阅)。因此,也许您可以确定请求中发送了哪些字段,并告诉更新处理程序仅处理这些字段